可能是串口初始化程序不对,串口未激活
给用个初始化程序看看
void usart0_inttialization()
{
P3SEL=0xf0;
P3DIR=0X00;
U0CTL&=~SWRST;
U0CTL=CHAR; //无校验,8位数据
U0RCTL=0;
U0BR0=0X18; //波特率19200
U0BR1=0x00;
U0MCTL=0; //;不用调整
U0TCTL=SSEL1+SSEL0; //主时钟
P3DIR=RXD+TXD;
P3SEL=RXD+TXD;
ME1|=UTXE0+URXE0;
}
//发送一个字节函数
void transmit_a_bit(char sdata)
{
TXBUF0=sdata;
IFG1&=~UTXIFG0;
while(IFG1&UTXIFG0==0);
}
UTXIFG0 Bit 1
USART0 transmit interrupt flag UTXIFG0 is set when U0TXBUF is empty
0 No interrupt pending
1 Interrupt pending
URXIFG0 Bit 0
USART0 receive interrupt flag URXIFG0 is set when U0RXBUF has received a complete character
0 No interrupt pending
1 Interrupt pending
发送完成UTXIFG0被置为1
接收完成URXIFG0被置为1
启动发送只要配置好寄存器后,向TXBUF0写数据就行了
这是例子程序
#include <msp430x14xh>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ME1 |= USPIE0; // Enable USART0 SPI mode
UCTL0 |= CHAR + SYNC + MM; // 8-bit SPI Master SWRST
UTCTL0 |= CKPH + SSEL1 + SSEL0 + STC; // SMCLK, 3-pin mode
UBR00 = 0x02; // UCLK/2
UBR10 = 0x00; // 0
UMCTL0 = 0x00; // no modulation
UCTL0 &= ~SWRST; // Initialize USART state machine
P3SEL |= 0x0E; // P31-3 SPI option select
P3DIR |= 0x01; // P30 output direction
while (1) // Loop
{
volatile unsigned int i;
for (i = 0xFFFF; i > 0; i--); // Delay
while (!(IFG1 & UTXIFG0)); // USART0 TX buffer ready
P3OUT &= ~0x01; // Latch data into 'HC165
P3OUT |= 0x01;
TXBUF0 = RXBUF0; // RXBUF0 to TXBUF0
}
}
把浮点数分解 比如 12345 分解成12 和0345 12345/1= 12 12345%1=0345 03451000 变成整数。传送过去然后 逆向一下 就可以了
以上就是关于MSP430 串口发送始终停留在串口发送缓存是否空闲的判断语句上。全部的内容,包括:MSP430 串口发送始终停留在串口发送缓存是否空闲的判断语句上。、msp430f149 串口spi 发送和接收数据是怎么启动、高分求解答单片机msp430中怎么样用串口发送和接收float型数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)