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.
工具/软件:Code Composer Studio
您好!
我将 msp430fr5848与 CP2102搭配使用。
我正在 使用 FTDI 实现与 PC (pyserial)通信的功能。
[ msp430fr5848 p2.5 (UART TX)、p2.6 (UART Rx)→FTDI (CP2102)→PC (pyserial)]
问题是当我发送一个字节(或多个字节)时、接收器端的第8位始终为1。
ex) msp430fr5848发送0x01 --> pyserial 接收0x11
msp430fr5848发送0x11 -> pyserial 接收0x91
有没有人遇到过这种问题?
这是我的代码 msp430fr5848。
/* uca1_uart.c * *创建时间:2020年。 7. 10. * 作者:younjun */ #include "uca1_uart.h" uint8_t RXData = 0、TXData = 0; uint8_t initUart (void) { //将 GPIO 设置为 UART 模块 GPIO_setAsPeripheralModeFunctionInputPin (GPIO_PORT_P2、GPIO_PIN5 | GPIO_PIN6 = param.secondModReg;param_param_param.uart = 0x000_param.uart;param_param.uart = 0_param.uart = 0_param.uart;param_param.uart = param.selectClockSource;param_param_param_param.uart = 0_param_param_param.uart_param.uart = 0_param.uart param.param.param.param_a_uart_no_param.msborLsbartst = eUSCI_A_uart_lSB_first; param.numberofStopBits = eUSCI_A_uart_one_stop_bit; param.uartMode = eUSCI_a_uart_mode; param.oversam采样= eUSCI_uart_uart_uart_generation;param_uart_uart_uart_uart_uart_uart_mode;par if (STATUS_FAIL = EUSCI_A_UART_INIT (EUSCI_A1_BASE、¶m) ){ return 0; } EUSCI_A_UART_ENABLE (EUSCI_A1_BASE); EUSCI_A_UART_clearInterrupt (EUSCI_A1_base、EUSCI_A_UART_transmit)| EUSCI_A1_A1_INUSCI_INTERRUPT (EUSCI_A1_A1_A1_A1_A1_IN_INTERRUPT);EUSCI_A1_A1_IN_ EUSCI_A_UART_RECEIVE_INTERRUPT);//启用中断 EUSCI_A_UART_enableInterrupt (EUSCI_A1_base、EUSCI_A_UART_TRANSAT_INTERRUPT); 返回1; } uint8_t TEST = 0; #pragma vector=USCI_A1_Vector _ interrupt void USCI_UART_UART_UART_RETURN (USCI_USC_USCI_UART_LAY_USCI_LAY_USCI_LAUNT );(USC_USCI_USCI_UART_UART_LAY_AUTXUSCI_LAUNT_LAUNCH)= 0 (UCI_LAUNT_LAUNT_LAY_AUT = 0);UCI_AUTXUSCI_AUTXUSCI_LAUNT_LAY_AUT (UCI_LAUNT_LAUNT_LAY_AUT = 0); if (test >= 255) { test = 0; } break; case USCI_UART_UCSTTIFG: break; case USCI_UART_UCTXCPTIFG: break; }
这是我的 pyserial 代码
self.serial_dev.port = port_info[key_dev_port]# port[0].device self.serial_dev.baudrate = 1000000 self.serial_dev.timeout = 0 self.serial_dev.parity = serial.parity self.serial_dev.stopbits = serial.stopbits_one self.serial_dev.rtscts =错误 self.serial_dev._xonxoff =错误 self.serial_dev.dsrdtr =错误 self.serial_dev.bytesize = serial.EIGHTBITS self.serial_dev.open ()
此致、
Youngjun
您好、Youngjun、感谢您的发帖! 我们将查看详细信息并稍后回复您!
你好,李晓定。
我将波特率设置为115200和460800、可以正常工作。
MSP430是否不支持1Mbps?
您好、Youngjun、
MSP430不支持1Mbps UART。 从用户指南(MSP430FR58xx、MSP430FR59xx 和 MSP430FR6xx 系列用户指南(修订版 P))的表30-5中可以看出、最大波特率为460.8kbps。
您可以查看数据表中的表30-5以了解 UART 的正确寄存器设置。 您还可以 从 MSP430FR59xx、MSP430FR58xx 代码示例(修订版 L)的代码示例中找到用于参考的正确寄存器设置
谢谢、
Lixin
您好、Lixin、
我使用460.8k 进行了测试、一切正常。
谢谢。
此致、
青年