请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430F249 您好!
请帮助一个愚蠢的学生...
我正在尝试使我的 msp430f249与 UART 一起工作、
它会打印、但剂量会对输入做出反应(无 ECO)
我在中断中放置了一个停止符号、它不会触发
不明白为什么。
这是代码
感谢你们的帮助!!!
#include
#include
#include "msp430f249.h"
空 InitUART0 (空) //UART0初始
化{
//input_data=P3IN; //只读寄存器
P3OUT = 0x00; //输出为低
电平 P3SEL = 0x30; //外设模块功能:为 UTXD0和 URXD0
P3DIR = 0x10启用; // 1 ->输出;0 ->输入;UTXD0输出 P3.4 TX
P3REN = 0x00; //上拉/下拉电阻器被禁用
UCA0CTL1 |= 0x01;// 1)设置 UCSWRST
// 2)初始化所有 USCI 寄存器 UCSWRST = 1 (包括 UCAxCTL1)
UCA0CTL0 = 0x00;// 0x40 -> MSB 第一
个 UCA0CTL1 = 0x41;UCA0BR3
= 0x333/ UCA068/0 = 0x00;UCA0BR0 = 0x3270 = 0x00;//
//写入除数"N"的整数部分,即 UCBRx = INT (N)= 3
UCA0MCTL = 0x08;// UCBRSx = round ((N - INT (N))* 8)= 4
UCA0CTL1 &=~0x01;
// 5)启用中断(可选)
IE2 |= 0x01; // USCI_A0接收中断使能
IFG2 &=~0x01;//清除 UCA0 RXIFG
__bis_SR_register (GIE);
// for (int i=10;i;i--);//短延迟
}
void UART_transmit (unsigned char Data)
{
while (UCA0STAT & 0x01);// for (int I;IAR
+ UARTx+ Transmit)}(void UART+(UCA0+)(UARTx+)(UART+(UART+)(UART+)(UART+)* 0+(UCA+
#pragma vector=USCIAB0RX_Vector
__interrupt void USCI0RX_ISR (void)
{
UART_transmit (UCA0RXBUF+1); //发送回波+1
}
int main( void ){
//停止看门狗计时器以防止超时复位
WDTCTL = WDTPW + WDTHOLD;
InitUART0 ();
UART0SendTxt ("\r\nHTTPS://www.olimex.com/");
UART0SendTxt ("\r\n 按任意键返回回显(下一个 ASCII 符号)\r\n");
while (1);
}