STM32入门配置

来源:互联网 发布:一个产品50元,淘宝拍摄 编辑:程序博客网 时间:2024/05/23 16:55

因为公司需要,所以这几天摸了一下stm32的mcu,其实以前已经学过了ARM7的裸机操作,所以看这个没有什么太大的压力,就是函数太多,不过也正应为这个,所以开发起来特别方便,不像以前那样还得自己写寄存器了,
好了,首先介绍一下stm32是什么东西吧,
stm32是一个contex A7的核,对,他是arm的系类产品之一,是一个M3的处理器,我学工的lpc1113 就是一个M0的处理器,性能和这个差距很大,然后因为他是ST公司封装的外部库文件,所以命名成了ST M3 然后这也是一个大家族,就像8051一样,有001,101~104,20X的,表示的意思其实就是内存的大小,核还有寄存器是一样的,没啥变化,
1:新建一个工程;
new project,找到STMXX的,然后在找到你自己对应的型号(如果不对应的话,启动代码可能不一样);
然后到网上下载ST库3.5.0源码,把lib里面的cmsis拷贝出来再把STM32F10x_StdPeriph_Driver这个文件拷贝出来arm文件夹下你的芯片对应的.c文件拷贝出来,(有用)
新建4个文件FWlib,UART,STARTCODE,CMSIS,在你的keil工程里面,然后把STM32F10x_StdPeriph_Driver下的两个文件夹添加到FWlib上,arm下拷贝的.s文件添加到STARTCODE,cmsis下的main.c文件还有stm32f10X.c文件放到UART下,cmsis其他的放到CMSIS中,
2:配置环境
点击target option,勾选create hex,然后选择上面的c/c++,在Define中加入USE_STDPERIPH_DRIVER,STM32F10X_HD(我的工程的启动)点击下面的include path,把刚才新建的文件添加进去,OK了,至此keil的stm32 开发环境就ok了,
include path配置
点灯,我上面说过,stm32已经把寄存器封装的很方便了,不用我们直接操作寄存器,
GPIO_InitTypeDef (结构体),
然后在里面直接索引过去,看到他的几个变量,然后通过变量的类型找到对应的枚举,然后填写这个结构体。
GPIO_Init()
初始化对应的io口,索引找到这个函数的原型,然后看对应的参数是什么类型,之后调用,
OK了,GPIO的初始化,
stm32有一个很特别的地方就是每一个外围部件都有一个时钟,所以还要初始化GPIO的时钟,
RCC_APB2PeriphClockCmd();
GPIO应为是挂载在APB2上的,所以调用的是这个函数,
好啦,GPIO初始化完成了。然后就可以通过函数GPIO_SetBits(),还有GPIO_ResetBits() 来控制IO口输出输入的高电平了。

0 0