关于使用单片机控制A6GSM模块串口的问题

2025-03-20 20:03:50
推荐回答(5个)
回答1:

问题出在A6和单片机通信时的波特率不一致。单片机一般是设置成9600,A6默认是115200,如果把单片机波特率调成115200是可以通信的。但若单片机用的晶振是11M的,不好调成115200(我试过好多次,失败)。我是用电脑串口先连接A6用AT+IPR=9600将其波特率调成9600,再将单片机串口与A6相连(热插拨),中途A6不能掉电(因为A6好像不能保存设置,单片机倒是可以重启),这样单片机是可以与A6通信的。你在片机上编个根据短消息内容响应不同led灯的程序检测下就可以验证上述方法的。以上亲测通过。

回答2:

  1. 确认线连错没,tx ,rx 要交叉。

  2. 电源要确认好,这个模块打电话的瞬间电流会比较大。

  3. 单片机的串口电平是不是和模块电平匹配。

  4. 你如果怀疑波特率就直接把单片机设置成跟串口调试助手一样的波特率啊。。。。

  5. 如果改了波特率还不行就在单片机和A6连接好之后 直接找一根usb ttl串口的rx分别监听模块的tx,和rx,看下是不是真的有数据,如果有数据,看下A6模块对于你发的AT命令的回复。

  6. 不知道你用的是不是带232和ttl串口一起的那个模块,,刚看了一下,那个模块有点造孽啊,直接把两个output连在一起给模块的rxd了,这明显就是在比单片机和232谁的驱动能力强。。。。。有点造孽。或者是它的原理图和实际不一样通过其他方式规避了这个问题。

回答3:

我也遇过类似的问题,TB上买的A6模块,连接电脑后可进行电话、短信、联网。但跟单片机连就出问题,几十次上电后偶尔可以连上一次,一旦连上就正常了,重新上电后问题依旧。
这个问题折磨我几个月,后来通过逻辑分析仪发现上电后模块的波特率不对(上电后有一串数据输出)大概在2400左右,虽然知道问题了但依然无法解决,因为在电脑上是好的,后来想到了电源,两者的电源不同,连电脑使用的是电脑的U口供电,连单片机使用的是手机电源适配器供电,换过1A的适配器、换网上买的5V2.5A电源模块、加共模电感,加法拉电容、板上多余的地方加电解电容、加钽电容(电容可能有3000uF了吧)、加LDO(把模块自带的降压用的1N4007都取了,模块单独供4.2V的电),现在只有10%的概率能连上,模块上说的波特率自动适应也不起作用,现在完全不知道如何入手了,只怪当时图便宜,哎
楼主解决了记得回复下,谢谢

回答4:

关于单片机串口问题,一般来讲是采用分时复用的方式,也就是说分时间段来把串口分配给不同的模块使用。但你要求A模块不间断输出数据给单片机。这就要求A模块需要一个专用的串口。那么B和C就不能再使用这个串口了。
有两个办法来解决这个问题。
换个单片机,有多个串口的。
如果一定要用一个串口的单片机,那你可能用普通IO来模拟串口。从网上查资料还是有的。
另:你的理解是不是有问题,所谓有A模块不间断输出数据给单片机,可能吗?那你单片机就要不停地处理串口了,还干不干别的。建议你把三个模块都设置为被动发送(即从机)的,最好不要主动的,如果一定要有主动的,也不要超过1个。这样在待机时你把串口与这个模块连接。这样一个串口也够了。

回答5:

你最后如何解决这个问题的?