IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F429IGT6入门(一) -> 正文阅读

[嵌入式]STM32F429IGT6入门(一)

终于比完了赛也收拾完了学校一切的事务,终于有时间来学习自己喜欢的东西了!!(搓手手)最开始我准备用开发板学习,我使用的开发板是STM32F429挑战者V2和V1,所以我迫不及待地下载了keil 5 和装上了pack包,然后就遇到了小问题:

img

由于这个问题会导致我下不进程序,会使我出现以下的错误:

Error: Flash Download failed - Target DLL has been cancelled

SWD/JTAG Communication Failure

....

终于花了半个晚上,找到了原因以及解决方法:

File : D:\keil4\ARM\PACK\Keil\STM32F4xx_DFP\2.12.0\Keil.STM32F4xx_DFP.pdsc

Context : Item #1: <control if="jep106id != 0x20"> Item #0: <block>::Line 2 Expression : " Message(2, "Not a genuine ST Device! Abort connection.");" ----------------------------^ E203 : Undefined identifier - function 'Message'

这是出现问题报错的语句,出现这个问题有可能是因为keil版本的问题也有可能是pack包版本过低所导致的,它的原意是STM32FXX_DEF文件中的Message函数不能正常识别,它也可以通过重装软件解决,可这有点繁琐,所以我上网找到了如下的方法:

  • 复制报错的文件路径,找到pdsc文件。

  • 更改pdsc的属性,右键点击此文件,将只读属性取消。

  • 取消后,打开pdsc文件,找到对应message函数,将Message(2, "Not a genuine ST Device! Abort connection.");删除即可。

  • 最后,将属性改回只读,就可以编译并且下载程序了!

    在解决这个问题的时候也有一些发现,刚开始以外是芯片的问题,于是就研究了BOOT IO的启动方式,它的启动方式如下:

    STM32芯片上有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。

    BOOT1 = XBOOT0 = 0从用户闪存(flash)启动,这是正常模式
    BOOT1 = 0BOOT0 = 1从内置SRAM(内存)启动,这是调试模式
    BOOT1 = 1BOOT0 = 1从系统存储器启动,这种模式也可以用于调试


那么解决了基本的问题,那就开始学习吧🤦?♀?首先是初识STM32。

STM32作为一个微控制器,内核为Cortex-M4,主频为180M,自带了各种常用通信接口,功能有如下:

  • 串口(USART)-- Usb转串口模块、ESP8266、WIFI、GPS、GSM、串口屏、指纹识别...

  • 内部集成电路(IIC) -- EEPROM 、 电容屏 、 陀螺仪MPU6050、OLED...

  • 串行通信借口(SPI) -- 串行FLASH 、 以太网 W5500 、 音频模块VS1053 ...

  • SDIO \ FMC \ I2S \ SAI \ ADC \GPIO ...

存储器映射:存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射。

序号用途地址范围
Block 0SRAM(FLASH)0x0000 0000 ~ 0x1FFF FFFF(512MB)
Block 1SRAM0x2000 0000 ~ 0x3FFF FFFF(512MB)
Block 2片上外设0x4000 0000 ~ 0x5FFF FFFF(512MB)
Block 3FMC的bank1 ~ bank20x6000 0000 ~ 0x7FFF FFFF(512MB)
Block 4FMC的bank3 ~ bank40x8000 0000 ~ 0x9FFF FFFF(512MB)
Block 5FMC0xA000 0000 ~ 0xCFFF FFFF(512MB)
Block 6FMC0xD000 0000 ~ 0xDFFF FFFF(512MB)
Block 7Cortex-M4内部外设0xE000 0000 ~ 0xFFFF FFFF(512MB)

寄存器映射(是我们最为熟悉的):在存储器Block2这块区域,设计的是片上外设,它们以四个字节为一个单位,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过C语言指针的操作方式来访问这些单元,如果每次都是通过这种地址来访问,不仅不好记忆而且还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们常说的寄存器。这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。

// GPIOH 端口全部输出 高电平

#define GPIOH_ODR (unsignedint*)(0x40021C14)

*GPIOH_ODR = 0xFF;


GPIO八种模式 typedef enum { GPIO_Mode_AIN = 0x0, /* 模拟输入 */ GPIO_Mode_IN_FLOATING = 0x04, /* 浮空输入,复位后的状态 */ GPIO_Mode_IPD = 0x28, /* 下拉输入 */ GPIO_Mode_IPU = 0x48, /* 上拉输入 */ GPIO_Mode_Out_OD = 0x14, /* 开漏输出 */ GPIO_Mode_Out_PP = 0x10, /* 推挽输出 */ GPIO_Mode_AF_OD = 0x1C, /* 复用开漏输出 */ GPIO_Mode_AF_PP = 0x18 /* 复用推挽输出 */ }GPIOMode_TypeDef;

端口配置低寄存器 (GPIOx_CRL)(x = A...E)

端口配置高寄存器(GPIOx_CRH)(x = A...E)

端口端口输入数据寄存器(GPIOx_IDR)(x = A...E):这些位为只读并只能以字(16位)的形式读出。读出的值为对应I/O口的状态。

端口输出数据寄存器(GPIOx_ODR)(x = A...E):只能以字(16bit)的形式操作,复位值全是0。写0即输出0,写1即输出1。

端口位设置/清除寄存器(GPIOx_BSRR)(x = A...E):高16bit写1用于清0,低16bit写1用于置位,同时写1的话低16bi有效。

端口位清除寄存器(GPIOx_BRR)(x = A...E):低16位写1用于置位。

端口配置锁定寄存器(GPIOx_LCKR)(x = A...E)

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:36:26  更:2021-08-31 15:38:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:51:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码