msp430g2553串口通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define uint unsigned int
/*******************************************
函数名称:uart_init
功 能:初始化USCI模块
参 数:无
返回值 :无
********************************************/
/*******************************************
函数名称:USCI0TX_ISR
功 能:TXD中断服务子程序
参 数:无
返回值 :无
********************************************/
#pragma vector=USCIAB0TX_VECTOR
__interrupt void USCI0TX_ISR(void)
{
uint TxByte=0;
if (P1IN & BIT3)
TxByte |= BIT6;
// 如 果 P1.3 输 入 高 电
平,P1.6输出高电平
if (P1IN & BIT4)
TxByte |= BIT0; 平,P1.0输出高电平
void uart_init()
{
UCA0CTL1 |= UCSWRST;
//(1)默认为1,可有可
无
UCA0CTL1 |= UCSSEL_2;
//(2)选择时钟
源CLK = SMCLK
UCA0BR0 = 0x6d;
//(3)设置波特
率32kHz/9600 = 3.41
UCA0BR1 = 0x00; UCA0MCTL = UCBRS1 + UCBRS0; UCBRSx = 3 P1SEL |= BIT1 + BIT2 ; P1.2=TXD P1SEL2 |= BIT1 + BIT2; UCA0CTL1 &= ~UCSWRST; IE2 |= UCA0RXIE + UCA0TXIE; RXD中断 }
void main(void) {
WDTCTL = WDTPW + WDTHOLD;
//关闭看门狗
P1DIR = BIT0 + BIT6; P1OUT = 0x00;
// P1.0/6输出低电平
uart_init();
__bis_SR_register(LPM3_bits + GIE); }
//开总中断
返回值 :无
********************************************/
#pragma vector=USCIAB0RX_VECTOR
__interrupt void USCI0RX_ISR(void)
{
P1OUT = UCA0RXBUF;
//如果接收到数
据,P1OUT等于接受到的数据
UCA0TXBUF = TxByte; 输入低电平,传输值为0;否则为1. }
// 如 果 P1.4 输 入 高 电 //如果P1.3,P1.4
/*******************************************
函数名称:USCI0ห้องสมุดไป่ตู้X_ISR
功 能:RXD中断服务子程序
参 数:无
//(4)Modulation //(5)P1.1 = RXD,
//(6)清除UCSRST //(7)开TXD,
/******************************************* 函数名称:main 功 能:主函数 参 数:无 返回值 :无 ********************************************/
/******************************************/
/*两块msp430单片机之间的串口通信
*/
/*用单片机内USCI模块的UART模式
*/
/*通过灯的亮灭来实现观察
*/
/******************************************/
#include <msp430g2553.h>
}