您好!
我想测试 与外部 UART 相连的 MSP430FR2422中的 UCA0TXD P1.4,并使用它检查 UART 串行端口的输出。 我尝试使用 uint8_t 数据、但现在我想让 hello World 尝试、但 由于 char 和 uint8_t 数据类型不同且不支持转换、所以没有发生这种情况。 那么、有人能帮我处理这个代码、并尝试在 UART 上打印 Hello World。
#include "driverlib.h"
//#include "Board.h"
#define GPIO_PORT_UCA0TXD GPIO_PORT_P1
#define GPIO_PIN_UCA0TXD GPIO_PIN4
#define GPIO_FUNCITY_UCA0TXD GPIO_PRIMARY_MODULE_FUNCTION
#define GPIO_PORT_UCA0RXD GPIO_PORT_P1
#define GPIO_PIN_UCA0RXD GPIO_PIN5
#define GPIO_FUNCITY_UCA0RXD GPIO_PRIMARY_MODULE_FUNCTION
uint16_t i;
unsigned long int m=0;
uint8_t RXData = 0;
unsigned long int TXData = 10;
uint8_t check = 0;
char mystr[49]="1219";
void main (void)
{
//停止看门狗计时器
WDT_A_HOLD (WDT_A_base);
SYSCFG3 &=~μ F USCIARMP;
//* ptr = mystr;
//set ACLK = REFOCLK、时钟分频器为1
CS_initClockSignal (CS_ACLK、CS_REFOCLK_select、CS_Clock_divider);
//set SMCLK = DCO、分频器为1
CS_initClockSignal (CS_SMCLK、CS_DCOCLKDIV_SELECT、CS_CLOCK _DIVIDER_1);
//set MCLK = DCO、分频器为1
CS_initClockSignal (CS_MCLK、CS_DCOCLKDIV_SELECT、CS_CLOCK _DIVIDER_1);
//配置 UART 引脚
GPIO_setPeripheralModuleFunctionInputPin (
GPIO_PORT_UCA0TXD、
GPIO_PIN_UCA0TXD、
GPIO_Function_UCA0TXD
);
GPIO_setPeripheralModuleFunctionInputPin (
GPIO_PORT_UCA0RXD、
GPIO_PIN_UCA0RXD、
GPIO_Function_UCA0RXD
);
/*
*禁用 GPIO 上电默认高阻抗模式以激活
*先前配置的端口设置
*
PMM_unlockLPM5 ();
//配置 UART
//SMCLK = 1MHz、波特率= 115200
//UCBRx = 8、UCBRFx = 0、UCBRSx = 0xD6、UCOS16 = 0
EUSCI_A_UART_initParam param ={0};
param.selectClockSource = EUSCI_A_UART_CLOCKSOURCE_SMCLK;
param.clockPrescalar = 8;
param.firstModReg = 0;
param.secondModReg = 0xD6;
param.parity = EUSCI_A_UART_NO_parity;
param.msborLsbFirst = EUSCI_A_UART_LSB_FIRST;
param.numerofStopBits = EUSCI_A_UART_Oe_STOP_BIT;
param.uartMode = EUSCI_A_UART_MODE;
param.oversaming= EUSCI_A_UART_LOW_FREQUENCY BAUDRATE_generation;
if (STATUS_FAIL = EUSCI_A_UART_init (EUSCI_A0_BASE、¶m)){
返回;
}
EUSCI_A_UART_ENABLE (EUSCI_A0_BASE);
///EUSCI_A_UART_clearInterrupt (EUSCI_A0_BASE、
// EUSCI_A_UART_receive_interrupt);
//启用 USCI_A0 RX 中断
// EUSCI_A_UART_enableInterrupt (EUSCI_A0_BASE、
// EUSCI_A_UART_receive_interrupt);
//启用全局中断
//_enable_interrupt ();
while (1)
{
//增加 TX 数据
//将数据加载到缓冲区中
eUSCI_A_UART_transmitData (eUSCI_A0_BASE、mystr);//此处 mystr 将输入作为 uint8_t
for (m=0;m<10000;m++);
// while (check!= 1);
//check = 0;
}