TI中文支持网
TI专业的中文技术问题搜集分享网站

cc2540串口输出

各位大神,本人最近DIY了一块CC2540的开发板,现在通过USB的虚拟串口已经可以和BLE软件通信了,使用的程序为TI的官方程序hostestrelease,但我想通过CC2540的串口直接输出(使用P02和P03),不使用USB,以便于和其他MCU通信,我软件方面很白菜,求大神指导,最好是能提供一个工程文件让我测试一下串口硬件电路是否OK,谢谢!

CZ:

你可以在工程里选择CC2540EM,不用CC2540USB。

peng chen1:

回复 CZ:

谢谢,我是选择了CC2540EM,但是还是没反应,波特率57600,FLOW NONE ,无奇偶校验,8位数据位,一位停止位,使用的为USB转串口,没有使用RTS CTS脚等,只接通了 RXD TXD 和GND,不知道有影响没,数据有发送到P02(TTL电平)脚,但P03脚没有输出,我现在不太确定是我硬件上有问题还是需要更改CC2540EM工程,求帮助!

Jacky_chen:

回复 CZ:

您好!

       借此机会也是资讯一下CC2540串口问题,我的硬件是CC2540的迷你开发套件,我使用的是keyfob来调试串口。DEMO用的是SerialAppCentral,初始化配置成UART0,ALT0,也就是使用P0.2 和P0.3口,收发采用DMA触发,我从上位机发一串数据到CC2540,程序能在轮训的时候调用HalUARTReadDMA正常收到数据。

现在我的问题是我将收到的数据调用HalUARTWriteDMA写入缓冲,我监控在轮训的时候也有触发DMA,事实上没有数据从TX管脚发出,一直没有找到原因,望指教,谢谢!

Jacky_chen:

回复 Jacky_chen:

请FAE出来讲一下啊,是不是哪个地方没有配置到啊?

CZ:

回复 Jacky_chen:

你尝试一下把流控关掉,uartConfig.flowControl = FALSE,

还不行的话你再直接对寄存器U0DBUF写一个数据,看看有没有发出来

Jacky_chen:

回复 CZ:

谢谢,终于有人关心俺了。 我是有把流控制关闭的,还是不行。

另外我还单独写了一个裸机程序,只是配置了时钟和串口。

时钟配置:

    CLKCONCMD = (CLKCONCMD & 0x80) | CLKCONCMD_32MHZ;//启动外部32m                                while ( (CLKCONSTA & ~0x80) != CLKCONCMD_32MHZ );//等待外部32m稳定

串口配置:

   PERCFG = 0x00;                                //位置1 P0口      P0SEL = 0x3c;                                //P0用作串口      P2DIR &= ~0XC0;                             //P0优先作为串口0       U0CSR |= 0x80;                                //UART方式      U0GCR |= 10;                                //baud_e      U0BAUD = 0x3b;                                //波特率设为57600

发送:

               U0DBUF = 0x55;;         while(ACTIVE == 0);

 

还是没有发送输出?

 

Jacky_chen:

回复 Jacky_chen:

单步调试的的时候发现当向U0DBUF写数据时,U0CSR的TX_BYTE位置1,U0DBUF数据始终是0,U0CSR得ACTIVE也是0,没有数据从P0.3发送出来。

Jacky_chen:

回复 CZ:

再次感谢CZ,我使用的是TI CC2540 MINI开发套件,我在usb done 上面和key fob上面都实验过了,都是不行的,由于我这里没有EM的板子,会不会硬件哪里出了问题?

CZ:

回复 Jacky_chen:

你可以把我上面的代码放到你的MINI DK,理论上也是能够测到数据的,因为芯片也是CC2540,

另外你也可以直接对P0.3先作普通IO口测试,置高或置低,看看电平输出有没有变化

赞(0)
未经允许不得转载:TI中文支持网 » cc2540串口输出
分享到: 更多 (0)