msp430串口接收函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
msp430串口接收函数
篇一:基于msp430串口接收中断
#include
void main
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
P1SEL |= BIT1 + BIT2;
P1SEL2 |= BIT1 + BIT2;//需要对照着手册来看UCA0CTL1 |= UCSSEL_2;//选择串口的校验位 UCA0BR0 = 104;//9600 波特率的计算一般都存在误差 UCA0BR1 = 0;
UCA0MCTL = UCBRS0;//校准波特率用所以要使用校准UCA0CTL1 &= ~UCSWRST;//让串口进行复位
IE2 |= UCA0RXIE;//开启接收中断
__bis_SR_register;
}
#pragma vector = USCIAB0RX_VECTOR
__interrupt void USART_RECEIVE
{
UCA0TXBUF = UCA0RXBUF+1;
while);//等待发送完毕可加可不加 }
篇二:MSP430串口收发程序
MSP430 标准库printf函数实现
20XX-08-02 21:22
关键是增加一个putchar函数。
代码如下:
#include
#include
void NOP10
{
_NOP ;
_NOP ;
_NOP ;
_NOP ;
_NOP ;
_NOP ;
_NOP ;
_NOP ;
_NOP ;
_NOP ;
}
int putchar//注意不要改参数的类型和返回值的类型,否则printf调用是就有问题了。
{
if
{
TXBUF1 = '\r';
while==0);
}
TXBUF1 = c;
while==0);
return c;
}
void InitalUart1
{
P4SEL |= 0x03; // P4.0,1 = USART1 TXD/RXDME2 |= UTXE1 + URXE1;// Enable USART1 TXD/RXDUCTL1 |= CHAR; // 8-bit characterUTCTL1 |= SSEL1; // UCLK = SMCLK UBR01 = 0x36; // 1MHz 19200
UBR11 = 0x00; // 1MHz 19200
UMCTL1 = 0x6B; // Modulation
UCTL1 &= ~SWRST; // Initalize USART state machine IE2 |= URXIE1; // Enable USART1 RX interrupt
//IFG2 |= UTXIFG1;
}
void main
{
unsigned char i;
i=0x10;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
FLL_CTL0 |= XCAP18PF;// Configure load capsInitalUart1 ;
_EINT ;
// LPM0;
while
{
// while ); // USART1 TX buffer ready?
// TXBUF1 = 'H';
//putchar;
//putchar;
printf;
NOP10 ;
}
}
#pragma vector=USART1RX_VECTOR
__interrupt void usart1_rx
{
while ); // USART1 TX buffer ready?TXBUF1 = RXBUF1; // RXBUF1 to TXBUF0//LPM0_EXIT;
msp430各模块函数整合
20XX-08-13 14:27
/**************************************************
*
程序功能:控制8个LED闪烁,用于测试下载功能是否正常
测试说明:观察LED闪烁
***************************************************
/
#include
#include "EEPROM.c"
#include "LCD1602.c"
#include "DS18B20.c"
void LED_delay;
void KEY_delay;
void EEPROM_delay;
void sys_init;
void LED_Init;
void LED_Set;
unsigned char LED_Read_Status;
void LED_Test;
void KEY_Init;
unsigned char key;
void KEY_Test;
void SEG_Init;
void SEG_Show;
void EEPROM_Init;
void Write_EEPROM;
void Read_EEPROM;
void LCD1602_Init;
void LCD1602_Show;
void DS18B20_Init;
void TimerA_Delay_CFG;
float get_DS18B20_temperature;
unsigned char SEG_Table[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0 xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//0-f 段选信号,共阳 uchar UART_Rev_String[20]="\0";
uchar rev_string_count=0;