您好,
我们使用以下代码从 UART 传输数据。 为此,我们使用 MSP430FR2311控制器。 运行代码后,我们无法在串行监视器上接收数据。
谢谢!
#include <MSP4C.h>
#include <msp430fr2311.h>
/**
*主要
*
未签名的 int 接收数据=0;
void 振荡器集(void)
{
__bis_SR_register (SCG0);//禁用 FLL
CSCTL3 |= SELREF__REFOCLK;//将 REFO 设置为 FLL 参考源
CSCTL1 = DCOFTRIMEN_1 | DCOFTRIM0 | DCOFTRIM1 | DCORSEL_3;// DCOFTRIM=3,DCO 范围= 8MHz
CSCTL2 = FLLD_0 + 243;// DCODIV = 8MHz
__delay_cycles (3);
__BIC_SR_REGISTER (SCG0);//启用 FLL
}
void delay_ms (无符号 int ms)
{
While (ms-)(毫秒-)
{
__delay_cycles (1000);
}
}
无艺术气息(无效)
{
P1SEL0 |= BIT6 | BIT7;//配置 UART 引脚设置2-UART 引脚作为第二个功能
//配置 UART
UCA0CTLW0 |= UCSWRST;//设置软件重置启用
UCA0CTLW0 |= UCSSEL_2;//将 SMCLK 设置为 BRCLK 以用于9600的波特率
//波特率设置为9600
UCA0BR0 = 52;
UCA0MCTLW = 0x4900;
UCA0BR1 = 1;
PM5CTL0和=~LOCKLPM5;
UCA0CTLW0 &=~UCSWRST;//初始化 eUSCI
}
作废艺术发送(作废)
{
While (!(UCA0IFG 和 UCTXIFG));
UCA0TXBUF = 0x02;
}
作废 uartReceive(void)
{
While (!(UCA0IFG 和 UCRXIFG));
// UCA0RXBUF = UCA0TXBUF;
接收数据= UCA0RXBUF;
}
Int main (无效)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
振荡器 Set();
阿特英特();
PM5CTL0和=~LOCKLPM5;
//__delay_cycles (100);
While (1)(同时)
{
// uartReceive();
延迟_ms (100);
uartSend();
}
}