本帖最后由 qjp1988113 于 2020-10-23 14:20 编辑
官方给的代码是综合代码,太过庞大,我们还是先重新通过MCC来建立一些简单的工程。
新建一个工程,具体流程看之前的帖子,有很详细的描述。
打开MCC,出现配置界面,进行引脚和外设的配置:
引脚配置:我们配置了板上的4个LED灯,2个按键,一个调试串口,一个定时器
在配置按键时,我们要注意配置成上拉,体验会好一点。一开始我没勾选,
我用串口输出按键的电平,结果按一下发现串口要输出好久的低电平。
我看了下它的电路图:
原来是直接相连的,这样的悬空状态可能不是很稳定,还是加个内部上拉吧。
上拉后果然很稳定。
时钟配置成了最高的32M,不使能输出时钟的引脚:
串口配置成9600-N-8-1,使能中断(当前我们先不写中断内容),接收发送缓存大小为255,勾选重定向printf:
定时器配置成1ms中断一次,中断时间设定为500ms一次(黄灯闪烁):
配置中断的优先等级:
点击生成原始代码:
生成的代码,已经做得很好了,完全包装了底层的寄存器,用户甚至无需跟最底层打交道,就能写出代码。
以GPIO为例,配置好的函数操作包含:当前引脚的置高、置低、翻转、读当前引脚电平等,几乎涉及到的操作都包含了。
timer生成的文件里面,已经定义了一个count计数累加的标记变量了,我们修改下范围就能用了。
开始默认的是uint8_t类型的,结果我写了个500,然后就一直不能达到设定的值。
定时器中断函数为:每500ms黄灯闪烁一次。
main函数里面,2按键分别控制红灯的亮灭,并输出当前控制的按键号,绿灯每300ms闪烁。
编译,下载,查看现象:
|