CC2530开发模块与51单片机如何实现串口通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CC2530开发模块与51单片机如何实现串口通信相关的知识,希望对你有一定的参考价值。

现在我有一块51开发板和CC2530开发模块,我现在用CC2530采集温湿度数据,如何将CC2530采集到的数据发送给51单片机。现在我的代码可以将CC2530采集的温湿度数据发送到PC上然后通过串口助手显示出来,与51的通信是不是和PC端通信一样,需不需要改一些代码。

通信都是一样的,单片机和单片机通信(tx连rx,rx连tx),重点是波特率相同,然后就是接收数据判断追问

现在就是波特率设置出现问题了,52这边用的是12M晶振,波特率设置9600时传输有误差,怎么才能避免,没时间换11.0592的晶振了

追答

现在怎么学习都是理论啊..波特率我们做..都是用软件给出的..-1 -1试的..波特率基本都是错的..只有慢慢试才会正确..大概-5之内会出现..运气不好+-10之内
如果还不行就考虑一下是不是你的程序有问题,在考虑电路

参考技术A 我在做这个课设,能

单片机串口通信控制led灯的点亮

参考技术A pc通过串口和单片机交换数据,从而控制LED灯。 pc程序用labview 调用Visa 进行串口通讯。单片机接受到串口命令后控制I/O口的高低电平实现led灯亮灭控制。
用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。 if(SBUF==0) //这是按二进制数接收的 if(SBUF==1) //这也是按二进制数接收的 这样写程序,要求电脑上,要按二进制数即十六进制数发送才行。 还是按字符格式收发比较好。
看你这程序编的,ha 查询RI 不是等于 1,而是0 只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是 0,不是1 当接收完数据后,再进行对RI的清零 还是不多说了,上程序,若满意请记得采纳一下,谢谢! 这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序
电脑上,你是用什么软件发送数据的看用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。

以上是关于CC2530开发模块与51单片机如何实现串口通信的主要内容,如果未能解决你的问题,请参考以下文章

51单片机(CC2530)发送按键次数到串口助手显示 实现功能:按1次按键 串口助手显示1 再按一次 显示2 以此

cc2530属于啥单片机

如何使用串口调试工具收发cc2530串口数据?

#导入Word文档图片# CC2530 串口配置步骤

CC2530的串口通信原理与应用

cc2530串口接收数据