[开发工具]

【PIC-IoT WA开发板】+GPIO输入输出+timer定时中断+串口输出

[复制链接]
559|0
手机看帖
扫描二维码
随时随地手机跟帖
qjp1988113|  楼主 | 2020-10-23 14:20 | 显示全部楼层 |阅读模式
本帖最后由 qjp1988113 于 2020-10-23 14:20 编辑

官方给的代码是综合代码,太过庞大,我们还是先重新通过MCC来建立一些简单的工程。
新建一个工程,具体流程看之前的帖子,有很详细的描述。
打开MCC,出现配置界面,进行引脚和外设的配置:
引脚配置:我们配置了板上的4个LED灯,2个按键,一个调试串口,一个定时器
GPIO.png
在配置按键时,我们要注意配置成上拉,体验会好一点。一开始我没勾选,
我用串口输出按键的电平,结果按一下发现串口要输出好久的低电平。
我看了下它的电路图:
KEY.png
原来是直接相连的,这样的悬空状态可能不是很稳定,还是加个内部上拉吧。
上拉后果然很稳定。
P2.png

时钟配置成了最高的32M,不使能输出时钟的引脚:
P3.png
串口配置成9600-N-8-1,使能中断(当前我们先不写中断内容),接收发送缓存大小为255,勾选重定向printf:
P4.png
定时器配置成1ms中断一次,中断时间设定为500ms一次(黄灯闪烁):
P5.png
配置中断的优先等级:
p6.png
点击生成原始代码:
P7.png
生成的代码,已经做得很好了,完全包装了底层的寄存器,用户甚至无需跟最底层打交道,就能写出代码。
以GPIO为例,配置好的函数操作包含:当前引脚的置高、置低、翻转、读当前引脚电平等,几乎涉及到的操作都包含了。
timer生成的文件里面,已经定义了一个count计数累加的标记变量了,我们修改下范围就能用了。
开始默认的是uint8_t类型的,结果我写了个500,然后就一直不能达到设定的值。
C1.png
定时器中断函数为:每500ms黄灯闪烁一次。
C4.png
C5.png
C2.png
C3.png
main函数里面,2按键分别控制红灯的亮灭,并输出当前控制的按键号,绿灯每300ms闪烁。
C6.png

编译,下载,查看现象:

C11.png

C12.gif

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

111

主题

627

帖子

2

粉丝