This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

msp430f5329 Uart口通讯问题

Other Parts Discussed in Thread: CC2530

现在采用的是f5329这款MCU,硬件上采用了P3.3P3.4口作为Uart口的TX和RX口,与CC2530里面的C51进行串口相连

需要实现的功能就是和2530之间进行通讯,由于上层软件处理比较复杂,因此通讯的消息和数据量都比较大,单次传输交互大概在100多字节

现在的想法是,在发送的时候,直接轮询TX的标志位,空闲的时候发送,一次死循环发送完毕

接收的时候,采用RX中断标志接收,但是这里一次只能接收一个字节,想开辟一个缓冲区,将所有的接收信息缓存到缓冲区中

在主程序的死循环中,去处理这个缓冲区中的数据,有以下几个问题:

1)处理缓冲区中的数据时,是不是需要关中断? 因为对于同一个缓冲区,RX的中断会去写

2)如果要关中断,会不会出现处理缓冲区时间过长,RX的中断被丢弃造成接收数据丢失的情况

是否有这样的模型代码可以参考,搜了一下CCS中自带的msp430ware,没有发现可以借鉴的代码,不知道TI这边是否可以提供?

谢谢!

  • 您好!

    如果RX和TX是同时进行的,建议您为RX和TX分别开辟独立的缓冲区。关中断肯定会丢失接收的数据,而用同一个缓冲区也必然会造成数据的混乱。

    I2C的一些参考例程中有轮询发送和中断接收的方式,您也可以参考用在UART通信中。

    谢谢!