|
用了网上看到的一大神的代码,根据自己板子的情况改了一下,在波特率115200下用串口工具发数据进不了接收中断,想问问各位是为什么
- #include <msp430.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include "PIN_DEF.H"
- void clock_config(void);
- void select_xt1(void);
- void dco_config(void);
- void uart_config(void);
- int main(void)
- {
- clock_config(); // 初始化时钟
- P5DIR |= POWER ; // 主电源
- MAIN_POWER_ON ;
- uart_config();
- _EINT();
- while(1) ;
- }
-
- void clock_config(void)
- {
- WDTCTL = WDTPW + WDTHOLD; // 停止看门狗
- select_xt1(); // 选择XT1
- dco_config(); // ACLK = XT1 = 32.768K
- // MCLK = SMCLK = 8000K
- }
-
- void select_xt1(void)
- {
- // 启动XT1
- P7SEL |= 0x03; // P7.0 P7.1 外设功能
- UCSCTL6 &= ~(XT1OFF); // XT1打开
- UCSCTL6 |= XCAP_3; // 内部电容
- do
- {
- UCSCTL7 &= ~XT1LFOFFG; // 清楚XT1错误标记
- }while (UCSCTL7&XT1LFOFFG); // 检测XT1错误标记
- }
-
- void dco_config(void)
- {
- __bis_SR_register(SCG0); // 禁止FLL功能
- UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx
- UCSCTL1 = DCORSEL_7; //
- UCSCTL2 = FLLD_1 + 243; // 设置DCO频率为8MHz
- // MCLK = SMCLK= Fdcoclkdiv = (N+1)X(Ffllrefclk/n)
- // N为唯一需要计算的值
- // Ffllrefclk FLL参考时钟,默认为XT1
- // n取默认值,此时为1
- // (243 + 1) * 32768 = 8MHz
- __bic_SR_register(SCG0); // 使能FLL功能
-
- // 必要延时
- __delay_cycles(250000);
-
- // 清楚错误标志位
- do
- {
- UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
- // 清除所有振荡器错误标志位
- SFRIFG1 &= ~OFIFG; // 清除振荡器错误
- }while (SFRIFG1&OFIFG); // 等待清楚完成
- }
-
- void uart_config(void)
- {
- P10SEL |= BIT4+BIT5; // 选择P10.4和P10.5的复用功能
-
- UCA3CTL1 |= UCSWRST; // 软件复位
- UCA3CTL1 |= UCSSEL_2; // 选择SMCLK时钟
- UCA3BR0 = 69; // 查表获得
- UCA3BR1 = 0; // UCA3BRX和UCA3MCTL数值
- UCA3MCTL |= UCBRS_4 + UCBRF_0; //
- UCA3CTL1 &= ~UCSWRST; //
-
- UCA3IE |= UCRXIE; // 使能接收中断
- }
-
-
- #pragma vector=USCI_A3_VECTOR
- __interrupt void USCI_A3_ISR(void)
- {
- switch(__even_in_range(UCA3IV,4))
- {
- case 0:break;
- case 2: // 接收中断
- while (!(UCA3IFG&UCTXIFG)); // 等待发送完成
- UCA3TXBUF = UCA3RXBUF; // 接收缓冲区
- break;
- case 4:break; // 发送中断
- default: break;
- }
- }
复制代码 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|