CC2530串口0,为什么串口助手的RTS打勾才能收到啊
时间:10-02
整理:3721RD
点击:
今天遇到了一个问题,CC2530使用串口0,禁止硬件流控制,为什么只有在串口助手RTS那打上勾能收到数据,如果不使用硬件流控制,RT引脚需要做什么特殊处理吗?求高手指教
按照你说的情况,
应该是你的CC2530串口寄存器设置的使用流控制,所以当你串口助手不勾选RTS时,不会发送接收的信号,那么CC2530接收不到这个信号,就永远不会发送数据。
两个解决方法:
一、你如果不想用流控,那就改下CC2530的寄存器,不用流控就行了
二、就是给CC2530发假的流控信号,但这么做的后果就是可能会丢数据
所以如果为避免出错,还是建议使用流控。
我禁止寄存器硬件流控了,还是不行
如 果 你 设 置 是 正 确 的 话 , 还 是 这 样 , 那 估 计 是 硬 件 有 问 题 了 。
PERCFG = 0x00; // 串口0使用备用位置1
P0SEL = 0X0c; // p0.2、P0.3作为外设端口口
P2DIR &= 0x3f; // P0口串口的优先级最高
U0CSR = 0XC0; // 接收使能
U0BAUD |= 216;
U0GCR |= 11 ; // 波特率9600
我这样配置对吗?
不用流控制时,只用RXD、TXD两条线。
现在较多的是不使用流控制。
你可以百度找下相关的代码参考下,如果程序没有问题,就是硬件了,一般的话,你寄存器都禁止寄存器硬件流控,不应该需要勾选RTS
我禁止流控了,但是还是不行
嗯,现在还没找到原因。。。
这个不是使能接收的吗
不好意思,是我错了,我把U0CSR看成U0UCR了。
谢谢你的热心回复,我感觉可能是串口线的问题,我用USB转TTL的就没有这个现象