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.

[参考译文] MSP430FR5987:MSP430FR5987 UART 配置问题:波特率19200、频率8MHz

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1399668/msp430fr5987-msp430fr5987-uart-configuration-problem-baud-rate-19200-frequency-8mhz

器件型号:MSP430FR5987

工具与软件:

Im 使用下面给出的代码:不起作用:我想配置 UART 波特率19200和8MHz
我遵循数据表、尝试了大量时间来调整不同的值、但它不起作用、但它在19200 16 MHz 上工作

如果有人能在这种情况下帮助我,那将是伟大的。  

谢谢


#include

/**
* main.c
*波特率19200 8MHz
*
*/

//用于初始化 UART 的函数
void initUART (void)

WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

//-设置 UART
UCA1CTLW0 |= UCSWRST;//将 UART A1置于软件复位状态(配置前需要)

//选择 SMCLK (8MHz)作为时钟源
UCA1CTLW0 |= UCSSEL__SMCLK;

//使用8MHz 时钟将波特率设置为19200
UCA1BRW = 26;// 8MHz /(16 * 19200)= 26

//基于0.4286小数部分配置调制
UCA1MCTLW =(0x54 << 8)|(0 << 4)| UCOS16;// UCBRSx = 0x54、UCBRFx = 0、启用 UCOS16 (过采样)

//--设置端口
P3SEL1并且=~BIT4;//清除 P3SEL1的位4以选择 UART 功能
P3SEL0 |= BIT4;//设置 P3SEL0位4以选择 UART 功能

//解锁和启用 I/O 引脚(禁用高阻抗模式)
PM5CTL0 &=~μ H LOCKLPM5;

//将 UART 退出复位以开始操作
UCA1CTLW0 &=~μ s UCSWRST;
}

//通过 UART 发送字符串的函数
void uartSendString (字符*str)

while (* str!='\0')

while (! (UCA1IFG & UCTXIFG));//等待 TX 缓冲区准备就绪
UCA1TXBUF =* str;//传送字符
STR++;//移动到下一个字符
}
}

void main (void)

initUART ();//初始化 UART

//-主循环
while (1)

uartSendString ("Hello, worked 8MHz Baud Rate 19200!\r\n");//发送字符串
__delay_cycles (800000);//延迟以避免使 UART 不堪重负(根据需要进行调整)
}
}