本文来源电子发烧友社区,作者:Aivisus, 帖子地址:https://bbs.elecfans.com/jishu_2308773_1_1.html
串口通信测试(视频详见作者原帖子)
此次MC3172的串口测试设定两个目标,一个是与PC通信,即能够在PC上对MC3172板子进行收发数据。第二是与51单片机进行收发数据通讯。
首先查看到MC3172开发版有12组可以使用的串口配置,从网上找到某位大神总结的一张图如下:
在看例程里,线程2就是串口通讯的例程,打开注释,即可以进行串口通信的测试。这里使用一个uart转usb的小转接板,用于PC与MC3172进行串口通信,转接板的RX,TX分别接入MC3172开发板的PC3(TX),pc2(RX),要注意RX/TX的接线顺序,接反是收发不了数据的。
然后在PC上打开串口工具 SCOM ,把转接板插入PC,找到转接板对应的串口号,然后在scom里打开这个串口,设置波特率为 115200, 8N1 的设置,即可看到MC3172向PC连续发送的0x31数据了,PC上向开发板发送也一样,发送后可以将数据再反向发回来,即验证开发板与PC通讯成功。
- void GPCOM_UART_EXAMPLE(u32 gpcom_sel)
- {
- INTDEV_SET_CLK_RST(gpcom_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV4));
- GPCOM_SET_IN_PORT(gpcom_sel,(GPCOM_RXD_IS_P2));
- GPCOM_SET_OUT_PORT(gpcom_sel,(
- GPCOM_P0_OUTPUT_DISABLE|GPCOM_P3_OUTPUT_ENABLE|GPCOM_P2_OUTPUT_DISABLE|GPCOM_P1_OUTPUT_DISABLE|
- GPCOM_P0_IS_HIGH |GPCOM_P3_IS_TXD |GPCOM_P2_IS_HIGH |GPCOM_P1_IS_HIGH
- ));
- GPCOM_SET_COM_MODE(gpcom_sel,GPCOM_UART_MODE);
- GPCOM_SET_COM_SPEED(gpcom_sel,12000000,9600); //这里<---115200改为9600
- GPCOM_SET_OVERRIDE_GPIO(gpcom_sel, (
- GPCOM_P2_OVERRIDE_GPIO|GPCOM_P2_INPUT_ENABLE |
- GPCOM_P3_OVERRIDE_GPIO
- ……
- }
首先通过PC连接51开发板,把通讯速率调至9600,8N1的设置,向开发板发送字符串,51单片机开发一个简单的程序,就是将串口收到的acsii码显示到LCD屏幕上,PC向51单片机发送字符串时,51单片机能够正确的显示出发送的内容,因此验证51单片机通讯工作正常。
然后把MC3172的PC3(TX),PC2(RX)脚连接51单片机的P30,P31口,即把MC3172串口与51单片机串口连接起来,验证MC3172能够51单片机通讯。
烧写好程序,连接好线后,运行MC3172程序,单片机LCD 上显示的是乱码,并没有正确的显示出预设的字符串。又将MC3172连接到PC上,PC上使用9600速率进行连接,发现也是收到的数据不正确。
经过几番测试研究,又上网找资料,终于在一个论坛里,发现一个官方技术人员关于MC3172串口通讯的回帖,串口速率的设置,不能只设置波特率,需要根据芯片主频,来设定合适的分频数,以及芯片外设的主频率和通讯波特率,并且主频频率于波特率的比值不能超过255, 那这一下就明白了,只修改通讯速率是不行的。
那么以这次与51开发板通讯所需要的9600通讯来说,是这样计算的,因为使用的是200M(实际是192076800Hz) 先进行1/256分频,得到外设的工作频率 750300, 然后检验 6002400/9600=78.1, 78 < 255, 即合适。如果这里分频选择小了,那么外设工作频率就大,比如选择32分频,那么外设工作频率为192076800Hz/32=6002400, 再检查倍率6002400/9600=625, > 255, 则无法正常工作。
因此了解这个规则后,就可以随心所欲的设置了,同时如果在配置线程时,选择了不同的晶振,也需要修改相关的参数,串口才能正常的工作。
最后在选择内部rc晶振下,修改两行代码如下,即可以正确的与51单片机进行通讯了。
INTDEV_SET_CLK_RST(gpcom_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIv2));
改为
INTDEV_SET_CLK_RST(gpcom_sel,(INTDEV_RUN|INTDEV_IS_GROUP0|INTDEV_CLK_IS_CORECLK_DIV256));
GPCOM_SET_COM_SPEED(gpcom_sel,12000000,115200);
改为
GPCOM_SET_COM_SPEED(gpcom_sel,750300,9600);
最后终于在51单片机上收到MC3172板子发来正确
的数据了。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
发布评论请先 登录
相关推荐
热点推荐
【免费试用】匠芯创D133CBS KunLun Pi开发板试用体验
匠芯创D133CBSRISC-VKunLunPiV1.0是一款基于D13x芯片的人机交互应用开发板,配备4.3寸LCD显示屏以及电容触摸屏,支持DVP摄像头。开发板集成了USB烧录、TF-Card
基于RK3576处理器,米尔RK3576开发板免费试用
年7月19日 评测数量: 3块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级
搭载OpenHarmony操作系统,视美泰SC-3568HA开发板免费试用
: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板
基于RK处理器,创龙TL3562-MiniEVM开发板试用体验
数量: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开
性能强悍!合众HZ-RK3568开发板试用体验
月19日 评测数量: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级
【免费试用】开发板评测大赛开启!OH 、RISC-V、Rockchip顶级开发板等你试用~
技术人的狂欢,开发者的盛宴!2025年最值得期待的硬核赛事——电子发烧友开发板评测大赛正式启动!无论你是开源生态的探索者、芯片架构的极客,还是物联网领域的创新达人,本次大赛三大赛
有奖丨米尔 NXP i.MX91开发板免费试用来啦
米尔与NXP合作发布的新品基于NXPi.MX91应用处理器的MYD-LMX91开发板免费试用名额来啦~~米尔提供了3套价值588元的MYD-LMX91开发板发起
免费丨米尔 STM32MP257开发板有奖试用
米尔与ST合作发布的新品基于STM32MP257应用处理器的MYD-LD25X开发板免费试用活动来啦~~米尔提供了2块价值488元的MYD-LD25X开发板发起
dsPIC33EDV64MC205电机控制开发板用户指南
电子发烧友网站提供《dsPIC33EDV64MC205电机控制开发板用户指南.pdf》资料免费下载
发表于 01-21 14:34
•12次下载

【感芯科技64线程MC3172开发板免费试用体验】与PC和51开发板串口通讯
评论