请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5969 工具/软件:Code Composer Studio
大家好、
在我的应用中、我需要通过 UART 从 MSP430FR5969向 PC 发送一些数据。 为此、我编写了以下代码:
#include
float TOF_buffer[]={1.1、1.2、1.3、1.4、1.5、 1.6、1.7、1.8、1.9、1.10};
float *p=*(&TOF_buffer);
void initial_Serial();
void serial_send (char);
void setup(){
PM5CTL0 &=~LOCKLPM5;
P1DIR &=~0x02;
P1REN |= 0x02;
P1IES |= 0x02;
P1IFG &=~0x02;
P1IE |= 0x02;
// P3.4中的输出 SMCLK
P3DIR |= 0x10;
P3SEL1 |= 0x10;
Initialize_Serial();
}
void loop(){
nop;
}
#pragma vector=Port1_vector
__interrupt void Port1_ISR_Hook (void){
char TOF_DATA ='1';
serial_send (TOF_DATA);
P1IFG &=~0x02;
P1IE |= 0x02;
}
void serial_send (char TX_DATA){
while (!(UCA0IFG 和 UCTXIFG));
P4OUT ^= 0x40;
UCA0TXBUF = TX_DATA;
while (!(UCA0IFG & UCTXCPTIFG));
UCA0IFG &=~UCTXCPTIFG;
}
void initialize_Serial(){
P2SEL1 |= 0b00000011;
P2SEL0 &=~0b00000011;
UCA0CTL1 |= UCSSEL_2 | UCSWRST;
UCA0BR0 = 0x08;
UCA0BR1 = 0x00;
UCA0MCTLW = 0x1111011100000001;
UCA0CTL1 &=~UCSWRST;
}
想法是在不中断的情况下使用 UART。 相反、只要按下按钮 P1.1、我就希望通过 UART 发送一条消息、该消息将写入串行监视器。 16MHz SMCLK 的波特率为115200。
但是、当尝试发送字符"1"时、我只能在串行监视器中读取"(设置为正确的波特率)。
之后、我不想发送单个字符、而是希望通过该接口发送浮点、我需要帮助。
提前感谢、
Joaquim