第一:软件的安装:
第二:阅读《STM32F4开发指南-寄存器版本_V1.1》的第三章
主要是MDK的使用技巧。
第三:新建项目工程和下载:
寄存器的就先参考我提供的例程,后面讲述库函数的时候咱们再从官方提供的库文件里面去拷贝。
1.新建文件夹STM32_Demo,在这个文件夹里面新建3个文件夹:USER,SYSTEM,HARDWAR。
USER:用来保存工程文件;
SYSTEM:用来存放一些官方提供的一些内核文件,以及一些常用的模块文件;
HARDWARE:存放和硬件相关的模块文件;
2.从我提供的程序代码里面拷贝文件到上面新建的文件夹里面;
从1.STM32F4_LED工程文件里面拷贝资料文件到上面新建的文件夹里面:
把1.STM32F4_LED--->SYSTEM拷贝到STM32_Demo---->SYSTEM;
把1.STM32F4_LED--->HARDWAR拷贝到STM32_Demo---->HARDWARE;
把1.STM32F4_LED--->USER--->main.c拷贝到STM32_Demo---->USER里面;
3.新建项目工程:
新建工程文件并保存到USAR里面;
选择芯片如下:STM32F407ZG
把文件里面的.c和.s文件添加到项目工程,可以先对其进行分组;
最终出现的效果如下(组的名称随意命名):
在文件里面还有很多.件,咱们要在工程里面知名路径;
编译会出现问题,咱们需要添加1个宏定义;
STM32F40_41xxx
这样编译就没有问题了。
先让ST-Link和STM32开发板连接,并连接到计算机;
咱们需要使用ST-Link下载,所以要配置如下:
点击上图中“Settings”,进入如下界面:
下载工程文件到STM32开发板:
配置注意的几点:
第四:项目工程的分析:
USER:main.c;
HARDWARE:led.c和led.h;相关LED灯的操作文件;
SYSTEM:sys文件夹:
startup_stm32f40_41xxx.s:官方提供的启动代码文件;
stm32f4xx.h:官方提供的STM32F4系列芯片的头文件,类似reg51.h。
具体分析:stm32f4xx.件:system的头文件
这个文件是官方提供的适用于所有STM32F4系列芯片的头文件,具体你要使用哪种芯片,要添加对应的宏定义来区分。
在这个文件68行到85行,这个就是要添加的宏定义,根据不同的芯片,添加不同的宏定义。
如何去添加宏定义:
在这个文件的172行到464行,这里面定义的是一个枚举型的类型,在枚举型列表里面的值是固定的,在本文中这些列表里面代表的是对应不同芯片的中断序列号。
定时器5的中断序列号为50,在程序里面使用的时候,不用直接去查数字是多少,直接用TIM5_IRQn就可以了。
在这个文件里面的478行到515行:是重定义的变量类型;
#define __IO volatile
在这个文件里面的528行到1719行,定义的就是STM32相关的寄存器。
定义这些寄存器的时候,针对一个模块(外设),设定了一个结构体的变量类型,把相关的地址转变为这个结构体类型的指针,使用结构体指针去表示结构体的变量。
以IO口的为例:
那么咱们去处理寄存器的时候,对应的寄存器名就用结构体指针,表示方式如下:
GPIOB->MODER GPIOB->ODR等等;
类似reg51.h里面的:sfr P0 = 0x80;
对应的寄存器名就为P0
这个文件的1720行之后,仅仅是一些宏定义,咱们现在不用。
第五:IO口的操作:
输出:控制LED灯;
输入:按键;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论