[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】串行通讯及其应用

[复制链接]
4311|7
 楼主| jinglixixi 发表于 2021-1-4 00:08 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2021-1-4 15:30 编辑

1. 串行通讯
PIC16F15244具有串行通讯功能,其实现的方法如下:
1)使用MCC,将RC0配置TX1以便发送数据;
2)将RC2设置为输入引脚,以备后续之用,其形式如图1所示;
                              
图1 引脚配置
3)按图2所示对引脚进行重新命名;
图2 引脚重命名
4)按图3所示来设置通讯参数;
图3 设置中断相应
5)按图4所示来设置通讯参数;
图4通讯参数设置
6)按图5所示设置系统时钟;
图5 设置系统时钟
7)按按钮,以生成程序框架;
8)按下面的内容来修改函数;
  1. void IOCCF2_DefaultInterruptHandler(void)
  2. // Default interrupt handler for IOCCF2
  3. {
  4. printf("Button pressed! \r\n");
  5. }

9)编译并下载程序,则程序的运行效果如图7所示。
图6 通讯串口连接

图7 运行效果

2. 通讯应用
有了前面的基础,稍加修改即可用来控制支持通讯指令的MP3播放模块,其实现的方法如下:
1)在pin_manager.c程序内添加指令数组及变量定义;
uint8_t j=0;
uint8_tcmd3[10] = {0X7E, 0xFF, 0x06, 0X03, 0x00, 0x00, 0x01, 0xFE, 0xF7, 0XEF};
uint8_t cmd6[10]= {0X7E, 0xFF, 0x06, 0X06, 0x00, 0x00, 0x10, 0xFE, 0xE5, 0XEF};
2)添加相应的辅助函数:
voidplayn(uint16_t index)
voidsetVolume(uint8_t index)
3)按下面的内容来修改函数;
  1. void IOCCF2_DefaultInterruptHandler(void)                                       // Default interrupt handler for IOCCF2
  2. {
  3. uint8_t i;
  4. if(j==0)
  5. {
  6. setVolume(18);
  7. for(i=0;i<10;i++)
  8. {
  9. EUSART1_Write(cmd6[i]);
  10. }
  11. j=1;
  12. }
  13. playn(j);
  14. for(i=0;i<10;i++)
  15. {
  16. EUSART1_Write(cmd3[i]);
  17. }
  18. if(j<6) j++;
  19. else j=1;
  20. }

4)编译并下载程序,则程序的运行效果如图8所示;

图8 运行效果
5)按图9所示来连接MP3播放模块,则按下开发板上按键时就循序地切换播放乐曲。

9  MP3播放模块连接

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
CoolSilicon 发表于 2021-1-4 11:31 | 显示全部楼层
第二个图的那个ANALOG的需要去掉..


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| jinglixixi 发表于 2021-1-4 12:05 | 显示全部楼层
CoolSilicon 发表于 2021-1-4 11:31
第二个图的那个ANALOG的需要去掉..

似乎没影响
比神乐 发表于 2021-1-4 12:32 | 显示全部楼层
非常不错
 楼主| jinglixixi 发表于 2021-1-4 15:29 | 显示全部楼层
pzsh 发表于 2021-2-2 14:07 | 显示全部楼层
楼主直接做了一个应用产品出来
 楼主| jinglixixi 发表于 2021-2-2 20:36 | 显示全部楼层
pzsh 发表于 2021-2-2 14:07
楼主直接做了一个应用产品出来

哈哈过奖了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部