我现在用的一款msp430fr5721在使用的过程中发现串口1不能发送数据,同样的配置给串口UART0就没问题。具体配置过程如下:
9600bps1,p2.5,2.6首先配置为第二功能外围模块功能。UCSWRST位为1时配置如下寄存器:2,时钟源选择ACLK=32768.3, UCAxBRW = 3;4,UCAxMCTLW = 0X9200;5,无校验,LSBfirst,1位停止位,uart模式:UCMODEx:00;6, UCSWRST位清零。7,循环判断UCTXIFG标志,为1送数到UCAxTXBUF,0则等待。以上是我的整个操作过程,请帮我看下哪里有问题。我用的是CCS V5_5库函数操作的方法。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
/*
* main.c
*/
void main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
PJSEL0 |= BIT4 + BIT5;//
CSCTL0_H = 0xA5;
CSCTL1 |= DCOFSEL0 + DCOFSEL1; // Set max. DCO setting
CSCTL2 = SELA_0 + SELS_3 + SELM_3;//smclk=mclk=dco
CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0; //
CSCTL4 |= XT1DRIVE_0;
CSCTL4 &= ~XT1OFF;
do
{
CSCTL5 &= ~XT1OFFG;
// Clear XT1 fault flag
SFRIFG1 &= ~OFIFG;
}while (SFRIFG1&OFIFG); // Test oscillator fault flag
P2SEL1 |= BIT5 + BIT6;//配置
P2SEL0 &= ~(BIT5 + BIT6);
// Configure UART 0
UCA1CTL1 |= UCSWRST;
UCA1CTL1 = UCSSEL_1; // Set ACLK = 32768 as UCBRCLK
UCA1BR0 = 3; // 9600 baud
UCA1MCTLW |= 0x5300; // 32768/9600 - INT(32768/9600)=0.41
// UCBRSx value = 0x53 (See UG)
UCA1BR1 = 0;
UCA1CTL1 &= ~UCSWRST; // release from reset
while (1)
{
UCA1TXBUF = 0x55; // Load data onto buffer
}
}
一周热门 更多>