实际上,我只想将十六进制值发送到UART引脚...以用于实验目的。
现在,当我运行下面的代码时,它会打印几个1和2个以及偶尔出现的<字符,如下所示:
11.1111万111111222222222222<等11.1111万等</s>22.2222万 22.2222万
帮助我解决这个问题。
请勿有必要。
#include <MSP4S.h>
#define INT 0x41;
void Init_gPIO();
内部主(无效)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
//配置GPIO
P1DIR = 0xFF;P2DIR = 0xFF;
P1REN = 0xFF;P2REN = 0xFF;
P1OUT = 0x00;P2OUT = 0x00;
PM5CTL0 &=~LCKLPM5;//禁用GPIO开机默认高阻抗模式
//激活1先前配置的端口设置
//配置UART引脚
P1SEL0 || BIT6 | BIT7;//将2-UART引脚设置为第二功能
//配置UART
UCA0CTLW0 |= UCSWRST + UCPEN_0 + UCSYNC_0 + UC7BIT_0 + UCSPB_0 + UCMODE_0;
UCA0CTLW0 |= UCSSEL_1;//将ACLK设置为BRCLK
//波特率计算。 请参阅UG 17.3 10
//(1) N=3.2768万/4800=<xmt-block0>4800 6.827
//(2) OS16=0,UCBRx=INT (N)=6
//(4)分数部分= 0.827。 已参阅UG表17-4,UCBRSx=0xEE。
UCA0BR0 = 3;// INT (3.2768万/4800)4800)
UCA0BR1 = 0x00;
UCA0MCTLW = 0x92 + UCOS16_0;
UCA0CTLW0 &=~UCSWRST;//初始化eUSCI
UCA0IE |= UCTXIE;//启用USCI_A0 RX中断
同时(1)
{
UCA0TXBUF = INT;
__DELAY周期(100万);
//__bis_sr_register( GIE);//输入LPM0,中断已启用
// UCA0TXBUF ='\0';
}
}