简介
在ti的开发过程中,我常将所有外设的配置以及程序功能的实现全部放在main.c里,随着功能的增加,代码长度也在增加,最终导入一个模板代码就已经将近两百行,为代码的编辑带来很大不便。最近转到stm32上来后,了解到正点原子的项目架构,觉得这样的常见功能封装成库的思路很有益处,因此我采集了正点原子例程中一些调试常用功能,加入一些改造和整合,得到了这样一个模板库:BASIC.h
使用简介
创建目录时将BASIC文件夹复制到项目文件夹中,在keil的项目group里加入BASIC里个各个.c文件,在options for target
里的c/c++选项include栏目里加入BASIC文件夹即可开始使用。
使用这个项目只需引用BASIC.h库即可,其他所有库均在这个库里面
功能介绍
延时函数
这部分内容由nxs7提供
函数原型:void Wait(u32 time)//time <= 1864
功能:让程序延时time ms
使能中断
这部分内容由正点原子提供,直接操作寄存器
1 | //设置NVIC |
这个函数用起来非常方便,比如,我们想为TIM3注册一个TIM3_IRQn中断的话,只需使用MY_NVIC_Init(0,3,TIM3_IRQn,2);
即可,无需使用中断初始化结构体。
按键
初始化函数:void KEY_init(void)
在这个库中,我们借助TIM3,实现了KEY0,KEY1和WK_UP 的短按,长按和组合使用的功能,默认为输出操作信息。欲修改按键功能请到KEY.c文件中修改相关部分。
LED
初始化函数: void LED_init(void)
之后点灯的操作非常简单,比如 LED0 = 1;就是让第一个灯亮
USART
初始化函数:
1 | //初始化IO 串口1 |
之后只需使用printf()
即可通过串口输出信息。具备完整的printf功能。(这里就要比ti强很多)
此外,还提供通过串口的信息接收功能。默认功能是将受到的信息原样发出,通过修改USART.c
中的analyseMessage()
函数可以实现任意解析接收受到的输出。