clu 输入输出 main 所有 name 选择 必须 oid
讲之前忽然想起来,keil arm 和 51 一起安装需要做点工作,可以参考这里点击打开链接,我也简单讲一下,如下图
如果装了 arm 或 51 的 keil 就会有 arm 文件夹或者 c51 文件夹,在此基础上要再装一个,就直接把相应的那个文件夹复制到这里来,文件夹可以上网找,或者装了再复制出来,这样就有了 arm 和 51 两个文件夹,接下只要改一下 TOOLS 文件就行了,就是把相应加进来的文件夹的配置填到 TOOLS 里去,注意 path 要根据个人情况填安装的路径,具体的内容看 链接。
首先新建工程
我用的是正点原子的 mini 板,所以也是按着它的教程来学,新建工程自然也按照它的规范来。
首先新建一个工程的文件夹,名字随便。在这个文件夹内新建文件夹如下
core 是存放核心文件和启动文件 hardware 放硬件有关驱动 obj 放生成的目标和过程文件 fwlib 就是 stm32 的库文件,system 放的是我买的单片机商家给的函数,比如延时什么的,我觉得暂时可以不用,user 下自动生成的三个文件夹是编译生成的中间文件 可删掉其中...it 是中断有关文件,system_stm32f10x 是时钟初始化,stm32f10x 类似 reg51.h, 是所有 stm32 库都会引用的文件,里面有所有的寄存器定义 conf 就是库配置文件,main 函数也放在 user 这
大致看一下里面有什么
core
fwlib(固件库 STM32F10x_StdPeriph_Lib 可以从网上下过来再找到这两个文件夹复制过来)
user
到这里文件的准备工作就好了,再简单说下新建工程
像原先新建 51 的工程时一样点,选择型号的时候注意如下,根据自己的单片机选
结束后把刚才新建的这些文件慢慢加到工程里去
待会点亮 led 的驱动部分就放到 hardware 里,main 就加到 user 去,还有三个需要注意的
第一点 在 define 那填 STM32F10X_HD,USE_STDPERIPH_DRIVER 前面一句是容量还是什么的,反正要根据单片机来,后面一句看下面
这是 stm32f10x.h 最后几行的内容,而 stm32f10x_conf.h 中包含了所有头文件,也就是说没后面那句 define 的话每次都把所有库文件都烧进去了,显然会很慢,所以我们还是定义比较好
第二点 #include path 那要填所有头文件所在的地址,必须是直接的,比如在...hardware\led 下有 led 的头文件,那就必须填 hardware\led 不能填 hardware
第三点,改一下生成目标文件的地址 三点如下图
这些设置结束后,把这个工程文件夹单独保存下来,毕竟这个过程还是挺麻烦的,以后直接复制这个文件夹,在修改下工程名字,加入适当硬件驱动和 main 函数就行了
下面讲点亮 led
点亮 led 就是控制 io 口,stm32 的 io 口显然不像 51 那么简单,先来宏观的讲一讲,stm32 有 A-G 七组 io 口,每组 16 个 io 口,也就是说理论上最多能连出 112 个 io 口,每组都由七个寄存器控制,七个寄存器特定的位对应特定的 io 口的相应功能,比如 CRL 和 CRH 两个寄存器,每个 io 口有对应四个位控制其输入输出的模式和速度,每个寄存器 32 位,则这两个寄存器刚好控制 16 个 io 口,即一组,每组都有相应的 CRL 和 CRH
复位时为浮空输入模式
目前是用库函数,所以寄存器先不细讲了,库函数设置两个 io 口如下
main 如下
- #include "led.h"
- void delayms(u16 time)
- {
- u16 i=0;
- while(time--)
- {
- i=8000; //不怎么准的。。。查了一下是默认72mhz的系统频率,网上说是这里12000,但是我用的时候感觉大了不少,8000还靠谱一点,先放着吧。。。
- while(i--) ;
- }
- }
- int main()
- {
- LED_Init();
- while(1)
- {
- GPIO_SetBits(GPIOA,GPIO_Pin_8);//PA8置高
- GPIO_ResetBits(GPIOD,GPIO_Pin_2);//PB2置低
- delayms(300);
- GPIO_ResetBits(GPIOA,GPIO_Pin_8);
- GPIO_SetBits(GPIOD,GPIO_Pin_2);
- delayms(300);
- }
- return 0;
- }
我这里没用那个正点原子给的 system 文件夹里的代码,所以那个文件夹空着也行
具体库函数里面是怎么写的以及时钟之类的下次有空再讲,先附上几张有关时钟的图片
STM32 - 新建工程,点亮 led
来源: http://www.bubuko.com/infodetail-2147279.html