搜索
bottom↓
回复: 9

请教一个串口问题,单片机RX引脚不能拉低

[复制链接]

出70入10汤圆

发表于 2020-7-5 16:32:02 | 显示全部楼层 |阅读模式
本帖最后由 ifare 于 2020-7-5 16:35 编辑

具体测试情况如下,用PC向MCURX每隔500ms发一个字节0x0A,并在示波器上看MCURX引脚的波形:
   1. 当MCURX不跟蓝牙的BTTX相连接时,示波器出来的波形是正常的,MCURX引脚可以被拉低,PC上可以收到从MCU返回的数据。(图一)
   2. 当MCURX跟蓝牙的BTTX连接后,MCURX不能被拉低,PC向单片机发数据时,一直是高电平, PC上不能收到从MCU返回的数据。 (图二)
   3. 再把MCURX跟蓝牙断开,接到公司里的另外几块带串口的板子的TX引脚上,示波器的波形显示MCURX又可以正常被拉低了。(图一)

看起来似乎问题点是在蓝牙模块的串口引脚上面。但接下来再做了一个测试,把PC的2根串口线PCTX,PCRX直接跟蓝牙的2根串口线BTRX,BTTX连接起来(断开MCU端
的TX,RX),同样发送数据,则有波形,并且PC上可以收到从蓝牙返回的指令数据。 (也就是说,PC单独向mcu或向蓝牙发送和接收数据,都是可以的。但一旦MCURX连上BTTX,就出现MCURX不能拉低的问题。)

补充说明:
    1. 蓝牙模块(含固件)是供应商提供,蓝牙的串口引脚悬空时测量电平,BTRX是低电平,BTTX是高电平。 (MCU的TX,RX悬空时都是高电平)
    2. MCU的型号是N76E003, 以前做了几个串口通讯的项目,没有遇到该问题。其中用到过该蓝牙公司的另一款芯片,串口通讯也没有问题。



本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入442汤圆

发表于 2020-7-5 16:47:18 来自手机 | 显示全部楼层
很正常啊,bttx应该是强输出,而你的其它模块是弱输出,刚不动bttx而已。

出0入4汤圆

发表于 2020-7-5 17:14:40 | 显示全部楼层
哪个大神告诉你,两个设备的TX可以直接连接到一起,然后发数据的。

出0入4汤圆

发表于 2020-7-5 17:20:51 | 显示全部楼层
你想一下,如果两个TX,一个发高电平,一个发低电平,总线电平是啥? 串口多机通讯不是这样玩的,起码串联个二极管吧

出20入62汤圆

发表于 2020-7-5 18:01:25 | 显示全部楼层
俩tx不能直接接。
|TX1|--------|负|二极管1|正|--------|RX|
|TX2|--------|负|二极管2|正|--------|RX|

出70入10汤圆

 楼主| 发表于 2020-7-5 19:18:04 | 显示全部楼层
本帖最后由 ifare 于 2020-7-5 20:44 编辑

谢谢上面各位大侠的回复。

这个项目不是多机通讯,以前做多机通讯中间用CPLD作切换的。
这里PC的TX仅做测试用,主要是想方便把这个问题比较清楚的说明出来,现在发现上面这种测试方法不是很恰当。

实质的问题是MCU跟蓝牙的串口直接相连,MCUTRX也不能被拉低。 测试如下:(MCU每隔500ms向蓝牙发一条指令数据,蓝牙收到指令后会返回另一条指令数据)

   1. MCU不开接收中断,MCURX可以被拉低,示波器上可以看到串口数据波形,表示已收到蓝牙的返回指令。 (图一)
   2. MCU开接收中断,中断里面增加了一条指令,设置了一个flg_rx=1的标志。然后MCURX的电平就不能拉低,示波器上一直是高电平,没有接收到蓝牙的返回指令。
(图二)
   
  这样看起来问题点好象是在中断程序的处理,但这已经是最简单的中断程序了,以前很复杂的中断程序跟另一款蓝牙芯片都可以正常通讯。
  为了确认中断程序是否有问题,就做了另一个测试,把MCU的2根串口引脚跟蓝牙断开,接到新唐官板的2个串口引脚上,则可以正常通讯(同样的串口中断程序)。
  在另一个项目上,MCU跟另一款蓝牙芯片也是可以正常通讯的,里面MCU串口中断程序的各种功能明显也比这里复杂。

  还有,蓝牙的串口引脚悬空时测量电平,BTRX是低电平,这个会不会对通讯有影响。一般情况,UART引脚悬空的时候都是高电平。


本帖子中包含更多资源

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

x

出0入475汤圆

发表于 2020-7-5 19:41:42 来自手机 | 显示全部楼层
那就是你驱动程序的问题呗,中断部分初始化或者处理代码影响了管脚的成了out模式了?

出0入475汤圆

发表于 2020-7-5 19:47:36 来自手机 | 显示全部楼层
另外,你用示波器模拟探头看蓝牙的TX,在你说的不能正常的情况下,是否有一些被拉低的脉冲幅度?脉冲的特性就是串口的那些数据的,只是幅度很低,哪怕只有几十mV。如果有则是mcu管脚配置成立out了,如果没有,很明显蓝牙我压根就没有数据输出,当然不会被拉低,肯定是你程序没有给蓝牙正确的命令,所以一直没有回复而已

出70入10汤圆

 楼主| 发表于 2020-7-5 20:09:26 | 显示全部楼层
串口驱动程序是新唐官方库里的,测试程序也是在官方库的最简单的串口例子上,稍加修改。如果贴上测试程序,可能会方便看一点。因为今天没在公司,所以暂时不能贴上的测试程序。


本帖子中包含更多资源

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

x

出16170入6148汤圆

发表于 2020-7-6 12:00:22 来自手机 | 显示全部楼层
打赏!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏
https://www.amobbs.com/thread-5735948-1-1.html
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 17:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表