本帖最后由 jinglixixi 于 2020-9-28 00:02 编辑
PIC16F15324配有2个UART,即:EUSART1和EUSART2。 要实现串行通讯功能也十分简单,当然首先要做的就是配置好引脚,具体的方法是: 1)打开MCC,然后在图1所示的设备资源窗口选取EUSART1或EUSART2。 若选取EUSART1,则会看到它被分配到引脚RC4和RC5上,其中RC4为TX1,而RC5为RX1;若选取EUSART2则会被分配到引脚RC0和RC1上,其中RC1为RX2,而RC0为TX2。 图1设备资源窗口
我们这里选EUSART1,则引脚配置如图2所示。 图2 EUSART1引脚配置
2)点击
按键,以生成代码框架。 3)切换至项目窗口,并打开main.c主程序,并进行语句添加。 添加其内容如下: voidmain(void) { volatile uint8_t rxData; // initialize the device SYSTEM_Initialize(); while (1) { // Add your application code if(EUSART1_is_rx_ready()) { //rxData = UART1_Read(); rxData = EUSART1_Read(); if(EUSART1_is_tx_ready()) { EUSART1_Write(rxData); } } } }
经程序的编译和下载,在连接USB转串口模块的情况下,其运行效果如图3所示,即发送的内容会原样返回。
图3 运行效果
实现了串行收发功能后,我们可以用它来做些什么呢? 对于PIC16F15324这样小规模的芯片,要想实现音乐播放功能基本是不可能的。但这不妨碍我们让它与相应的功能模块进行组合。 为此我们选定的目标是MP3音乐播放模块,其引脚配置如图4所示。
图4模块引脚排列
该模块在串行指令的控制下,可实现相应播放控制功能,如:播放上一首、下一首、播放、暂停、指定播放及音量调节等。 在充分利用板上资源的情况下,我们用板上的按键S2来选择播放的歌曲,以EUSART1的TX1来发送控制指令。 按键S2的参见图5所示,添加按键后的引脚配置见图6所示。
图5按键原理图
图6 引脚配置
配合按键S2的播放语句播放下一首,为使用的的方面,特将它存放到数组中,其内容如下: uint8_t cmd1[]= {0X7E, 0xFF, 0x06, 0X01, 00, 00, 00, 0xFE, 0xFA, 0XEF}; //next
实现播放控制的构建程序为: //KEY控制MP3播放 while (1) { if(key_GetValue()==0) { while(key_GetValue()==0); for(i=0;i<10;i++) { EUSART1_Write(cmd1); } } }
经程序的编译及下载,其测试的效果如图7所示。 图7 KEY控制指令发送
在连接MP3播放模块后,其运行效果如图8所示,播放效果良好。 若连接OLED屏,这可以显示出播放的歌曲名称,是不是小芯片依然也可以有作为!
图8 KEY控制MP3播放 |