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.

[参考译文] CCS/MSP430FR5848:msp430fr5848/UART 传输问题

Guru**** 664280 points
Other Parts Discussed in Thread: MSP430FR5848
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/928840/ccs-msp430fr5848-msp430fr5848-uart-transmission-problem

器件型号:MSP430FR5848

工具/软件: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、&param)
){
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