【RTT大赛作品连载】linkboy面向WCH移植(2)

描述

linkboy & WCH处理器移植入门
开始点亮LED灯
第一章节我们已经用串口打印代替GPIO输出,能运行linkboy程序了。本章我们继续移植,看看如何让开发板驱动真正的LED亮灭。首先到WCH官网找到这个示例文件夹:

开发板

进入EXAM文件夹,找到GPIO的示例,并打开:

开发板

把GPIO相关的函数复制出来,放到vos_c.h文件里:

开发板

这里边虽然增加了GPIO的操作,但是忽略了参数i,也就是不管linkboy界面上把LED接到哪个针脚,实际上都是从GPIOA0这个针脚输出。编译下载到开发板,并把开发板上的LED1插针接到GPIOA0,可以看到开发板上的LED1亮灭不停,表明初步完成了GPIO的移植。

接下来我们要处理参数i了,这个i就是图形界面连接的针脚序号,比如D4针脚,那么传进来的i就等于4。查询WCH手册可知,WCH的GPIO包括PA0-PA15,PB0-PB15,…… 因此我们可以把PA0-PA15编号为0-15,PB0-PB15编号为16-31,以此类推。体现在程序中,就是这样处理:

开发板

将引脚序号i除以16后,得到引脚的名字(ABCD…),将i对16取余数后,得到引脚的序号(0-15)。现在就可以独立控制多个LED了:

开发板

图中红灯接到了D14(i=14),绿灯接到了D18(i=18),因此开发板上的LED1需要接到PA14,LED2需要接到PB2(18/16=1 18%16=2),程序下载到开发板,并接好LED1和2,可以看到两个LED分别按照对应的频率闪烁。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分