微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640串口奇葩问题

CC2640串口奇葩问题

时间:10-02 整理:3721RD 点击:

大家好,

我最近需要做一个CC2640两个芯片间低功耗(允许休眠)的UART串口,由于没找到官方握手协议master端的代码,就自己用两个GPIO口 作SRDY和MRDY信号线。(互相告诉对方准备好了)

下面是问题:两个芯片间的串口不知道为什么互相间不能工作(其实我只需要单向的一个TX,另一个一个RX),但奇葩的是,我把一个的TX接电脑串口线RX就能收到,把另一个的RX接电脑的TX,电脑也能传数据过去,但两个芯片的TX对RX,就不工作了! (我一开始拿电脑串口的RX线接到 两个芯片TX和RX间发现数据压根没传出来,如果拔掉收端RX线,发现TX的数据就可以传给电脑的RX线了,说明貌似TX端没问题,但用电脑TX线接收端芯片的RX线也能传数据,说明收端貌似也没问题,但两个连一块就不工作)

 我把接收端芯片的power saving去掉也不行,波特率也没问题。不知道大家对这个问题有没有猜想。

下面贴串口的初始化部分,

发送端芯片UART初始化

//UART INIT
UART_Params_init(&SbpUartParams);
SbpUartParams.baudRate = 115200;
SbpUartParams.writeDataMode = UART_DATA_BINARY;
SbpUartParams.writeMode = UART_MODE_CALLBACK;
SbpUartParams.writeCallback = writeCallback;
SbpUartHandle = UART_open(CC2650_UART0, &SbpUartParams);

接收端芯片UART初始化:

//UART INIT
UART_Params_init(&SbpUartParams);
SbpUartParams.baudRate = 115200;
SbpUartParams.readDataMode = UART_DATA_BINARY;
SbpUartParams.readMode = UART_MODE_CALLBACK;
SbpUartParams.readCallback = readCallback;
SbpUartHandle = UART_open(CC2650_UART0, &SbpUartParams);

对了,我的TX和RX是直接用跳线连一起的,是不是电路上需要IIC那样加上拉电阻或其他的元件?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top