基于51单片机的CC2541蓝牙透传模块的无线通信

此前在某宝买了两块cc2541蓝牙透传模块用来做两块51板子上的无线通信,遗憾的是店家链接里面没有例程,只有一些没多大用处的技术文档和其他一些数据手册,对身为小白的我是沉重打击啊!鉴于本人最近调试出现的一些玄学问题和解决办法,这里分享给大家,以供大家参考:

废话不多说,先看一下我用的cc2541长什么样子:(这个是网上找的,避免出现店家的logo,不过确实长这个样子)额

cc2541使用之前需要对它先进行配置:用USB转TTL一端连接电脑,另一端连cc2541,然后打开串口调试助手,通过该工具往cc2541发送指令配置cc2541(一般要配置波特率,连接方式,主从方式),具体发送什么指令请自行百度cc2541指令集,有很多。配置一次即可,该模块可以断电保存配置好的内容(很不错哒)。

cc2541的无线通信方式主要分为两种:
1.上位机与cc2541模块进行通信(这里的cc2541是基于单片机的,否则也没多大意义,上位机可以是电脑或者手机),献上拙图:
在这里插入图片描述

先来电脑与单片机通信的,如上图,编写单片机程序,我用的是51单片机,当然stm32也可以哈,只要配置好串口就行了,需要注意的是程序里的串口通信波特率必须和cc2541配置时的波特率一致,另外建议电脑端连的是主模式,单片机端连接从模式。附上51代码(如果选择的是stm32单片机请自行配置32的串口,配不好可以找我哈):

void uartInit(void)
{
		ES=0;     //关中断
	   SCON=0x50;   
	   TMOD=0x20;  //用的是定时器1
	   TH1=TL1=0xFD;  //波特率为9600(cc2541模块默认波特率)
	   PCON &= 0x7f;
		TR1=1;
		TI=0;
		RI=0;
		EA=0;
		ES=1;
	   RI=0;  
}

然后在主程序里写发送、接收的主函数即可实现串口无线通信。

如果是手机作为上位机,那就很简单了,看下图:
在这里插入图片描述

这里只需要一个cc2541模块就可以,不过cc2541必须配置为从模式,单片机程序见上面的51初始化代码。

2.基于单片机的两个cc2541模块之间互相通信了,献上拙图:在这里插入图片描述

这里也比较简单,我用的是51单片机程序见上面的代码,这里的cc2541的主从模式上必须保证一主一从(一对一通信哦)。需要注意的是发送端的问题,必须保证两次发送之间有一个小小的延时(比如delay50ms),以保证接收端来得及反应。还有请保证两个cc2541的驱动程序里的波特率设置为一样的数值大小。

PS:关注微信公众号“24K纯学渣”回复“cc2541”可 获取完整的测试文档,另有作者帮助调试程序。

发布了25 篇原创文章 · 获赞 9 · 访问量 6207

猜你喜欢

转载自blog.csdn.net/qq_42144047/article/details/88218828