您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页串口通讯

串口通讯

来源:爱go旅游网
/****************************************************** 程序功能:接收来自PC机的数字,然后在数码管上显示

------------------------------------------------------- 通信格式:N.8.1, 9600

无校验,8个数据位,1个停止位,波特率9600

------------------------------------------------------ 测试说明:打开串口调试助手,正确设置通信格式,向学习板 发送一个字符,观察是否收到回发的字符,以及是否 正确

*******************************************************/ #include \"msp430x14x.h\" #include \"BoardConfig.h\"

unsigned int a;

uchar scandata[16] =

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void PutString(uchar *ptr) {

while(*ptr != '\\0') {

while (!(IFG1 & UTXIFG0)); // TX缓存空闲? TXBUF0 = *ptr++; // 发送数据 }

while (!(IFG1 & UTXIFG0)); TXBUF0 = '\\n'; }

/********************主函数********************/ void main(void) {

uchar *tishi = \"Please enter a single-digit:\";

WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 BoardConfig(0x88); //打开数码管 P4DIR=0xff; //初始化 P5DIR=0xff; P4OUT=0xff; P5OUT=0xff;

P3SEL |= 0x30; // 选择P3.4和P3.5做UART通信端口 ME1 |= UTXE0 + URXE0; // 使能USART0的发送和接受 UCTL0 |= CHAR; // 选择8位字符 UTCTL0 |= SSEL0; // UCLK = ACLK

UBR00 = 0x03; // 波特率9600 UBR10 = 0x00; UMCTL0 = 0x4A;

UCTL0 &= ~SWRST; // 初始化UART状态机 IE1 |= URXIE0; // 使能USART0的接收中断 PutString(tishi); //PC机显示提示信息

while(1) {

_EINT();

_BIS_SR(LPM0_bits+GIE); //进入低功耗并打开中断使能 while((IFG1&URXIFG0)==0); IFG1&=~URXIFG0;

a = RXBUF0; //将收到的字符ASCII码转换为字符并送给数码管显示 a -= 48;

P4OUT=scandata[a]; P5OUT&=~0x01; } }

/******************************************* 函数名称:UART0_RXISR

功 能:UART0的接收中断服务函数,在这里唤醒 CPU,使它退出低功耗模式 参 数:无 返回值 :无

********************************************/ #pragma vector = UART0RX_VECTOR __interrupt void UART0_RXISR(void) {

_BIC_SR_IRQ(LPM0_bits); //退出低功耗模式 }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务