关于AVR128DB48的应用程序开发示例,官方提供的git中有许多,使用“MPLABX-v5.45”似乎不能直接导入,每个工程需要按部就班,新建工程后使用MCC设置系统时钟,外设接口,在main.c中添加部分逻辑代码即可实现对外设的操作。本人围绕简单的GPIO口、USART,体验到了MPLABX带来的方便快捷。
我们从原理图或者开发板上的丝印知道,按键旁边的LED是PB3,因此只需设置GPIOB_3的高低电平即可实现LED的点亮与熄灭,正如前面搭建环境帖子中提及,使用MCC设置系统时钟24M,然后在Pin Module中勾选PortB_3为输出口,然后再Generate,再在main.c中添加部分代码,截图如下:
开发板实现的现象如下:
对一个GPIO口操作是比较简单,但是在接下来用USART通信时,遇到比较怪异的情况,使用USART1发送并回显到电脑端,结果出现乱码,PC端发送“1”,结果收到是“g”,git上也有采用USART1做为printf hello world示例,当然该例程只是直接输出“hello world”字符。实现串口通信,同样的在工程中设置系统时钟24M。
然后根据电路原理图,我们得知USART1是带Debug接口,因此在代码调试时可采用USART1,可能正因为这个原因,如果还对该串口进行读写,信号会受到干扰,造成写入的字符与读出的字符产生偏差。
因此在此工程中,换用USART3实现串口回显。使用MCC对串口3进行如下参数设置
然后Pin Module中勾选PortB_3为输出口。PB0做为TXD,PB1做为RXD是系统自动生成。
Generate自动生成代码后,在pin_manager.h的头文件中,可找寻到所需调用的接口函数。
然后根据自己的应用需求,在main.c中添加逻辑处理代码
实现了串口3的异步通信,数据及时回显,操作如下图所示
此次就初略得了解了如何使用MPLABX-v5.45构建工程,使用MCC快速导出调用外设接口函数,最后附上两个工程,感谢来访。
test_led.X.zip
(132.84 KB)
usart.X.zip
(159.52 KB)
|