msp430G2553串口通信_launchpad串口通信

发布者:陈晨5566最新更新时间:2021-01-12 来源: eefocus关键字:msp430G2553  串口通信  launchpad 手机看文章 扫描二维码
随时随地手机看文章

MSP430G2553 单片机中集成了 USCI_A0功能模块,可以直接完成串口通信
一、代码与仿真
TI官方例程中uart代码只有时钟,引脚,串口的初始化,不能直接串口收发,还需要增加发送函数和完善中断函数,我在官方例程的基础上,编写了串口通信程序,并硬件测试通过 。


硬件测试用板(TI的MSP-EXP430G2ET)
注意:图中绿圈跳帽的接法
在水平方向上, 跳线将 TXD 连接到 P1.1, 将RXD 连接到 P1.2 。
在垂直方向上, 跳线将 TXD 连接到 P1.2, 将RXD 连接到 P1.1。
用USCI_A0模块的串口时,RXD和TXD是固定的,板子的跳帽接法固定。
若是软件串口(TimerA定时器和软件结合的串口),则根据RXD和TXD
的设置,来接跳帽。

串口测试助手的收发情况
打开板子,电脑端收到
MADE BY PengChengIT.
G2553 UART
READY!!!
通过电脑端向芯片发字符,发啥收啥。测试成功!

代码说明
接收:
1、UCA0RXBUF是 USCI_A0模块存放要接收的字的寄存器
2、接收过程触发中断响应,中断向量:USCIAB0RX_VECTOR;
发送
1、有两个发送函数
①putchar(unsigned char tx_data)直接向函数输入要发送的字节
②putstr(char *s),可以直接向函数输入要发送的一串文字、数字。
char *string1=“MADE BY PengchengITn”;
putstr(string1);
2、UCA0TXBUF是 USCI_A0模块存放要发送的字的寄存器。
程序:
收啥发啥,每次收到后P1.0会亮一下。

#include

void putchar(unsigned char tx_data);

void putstr(char *s);



unsigned char RX_DATA;

char *string1="MADE BY PengchengITn";

char string2[]="G2553 UARTn READY!!!n";


int main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

  if (CALBC1_1MHZ==0xFF) // If calibration constant erased

  {

    while(1);                               // do not load, trap CPU!!

  }

  DCOCTL = 0;                               // Select lowest DCOx and MODx settings

  BCSCTL1 = CALBC1_1MHZ;                    // Set DCO

  DCOCTL = CALDCO_1MHZ;

  P1SEL = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD

  P1SEL2 = BIT1 + BIT2 ;                    // P1.1 = RXD, P1.2=TXD

  P1DIR = BIT0;                             //p1.0外接LED为输出状态

  P1OUT &= ~BIT0;

  UCA0CTL1 |= UCSSEL_2;                     // SMCLK

  UCA0BR0 = 104;                            // 1MHz 9600

  UCA0BR1 = 0;                              // 1MHz 9600

  UCA0MCTL = UCBRS0;                        // Modulation UCBRSx = 1

  UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine**

  IE2 |= UCA0RXIE;                     // Enable USCI_A0 RX interrupt

  putstr(string1);

  putstr(string2);

  __bis_SR_register(LPM0_bits+GIE);       // Enter LPM0, interrupts enabled


}


void putchar(unsigned char tx_data) //发送字符函数

{

while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready? 等待TX buffer为空

UCA0TXBUF = tx_data;// TX -> RXed character? 发送字符c

}


void putstr(char *s)//发送字符串函数

{

IE2 &= ~UCA0RXIE;//发送时先关闭接收中断,不接收

//如果没有发完,就继续循环发送

while((*s)!='')

{

putchar(*s);

s++;

}

IE2 |= UCA0RXIE; //发送完了打开接收中断

}


//  Echo back RXed character, confirm TX buffer is ready first

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)

#pragma vector=USCIAB0RX_VECTOR

__interrupt void USCI0RX_ISR(void)

#elif defined(__GNUC__)

void __attribute__ ((interrupt(USCIAB0RX_VECTOR))) USCI0RX_ISR (void)

#else

#error Compiler not supported!

#endif

{

while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready? 等待TX buffer为空

UCA0TXBUF = UCA0RXBUF; // TX -> RXed character? 发送接收到的数据

RX_DATA=UCA0RXBUF;

 if(RX_DATA&0x01)

{

P1OUT |= BIT0;

int i; 


for(i=0;i<400;i++); 


P1OUT &= ~BIT0;

}

else

P1OUT &= ~BIT0;                

}


二、 代码分析

时钟配置可以参考:

https://blog.csdn.net/pengchengIT/article/details/105763199

USCI_A0模块配置:

https://blog.csdn.net/weixin_43830248/article/details/85219710


关键字:msp430G2553  串口通信  launchpad 引用地址:msp430G2553串口通信_launchpad串口通信

上一篇:MSP430G2553 LCD1602 IIC 显示屏 PCF8574
下一篇:MSP430单片机实践篇---数字型LCD-1602显示

推荐阅读最新更新时间:2024-11-16 22:18

金刚石合成控制系统中多串口通信技术的设计与实现
摘要:通过多串口通信技术在金刚石合成控制系统中的应用,讨论了32位Windows操作系统下,VC多串口通信技术的设计与实现方法,并运用面向对象方法和多线程技术设计了一个比较完善的串口通信类。阐述了用VC开发上位机与PLC之间的串口通信程序设计方法和实现技术。 关键词:串口通信;面向对象方法;多线程;PLC 1 引言 传统的金刚石合成机控制系统是由一个PLC和一个可显示终端构成。这种传统的控制系统一般具有如下缺点: (1) 系统所有的工作都由PLC完成,其控制精度较差,致使合成的金刚石质量较差; (2) 显示终端的平面尺寸过小,这一方面使得操作人员观察系统的状态很不方便,另一方面也常常会引起误操作; (3) 金刚石合
[应用]
金刚石合成控制系统中多串口通信技术的设计与实现
摘要:通过多串口通信技术在金刚石合成控制系统中的应用,讨论了32位Windows操作系统下,VC多串口通信技术的设计与实现方法,并运用面向对象方法和多线程技术设计了一个比较完善的串口通信类。阐述了用VC开发上位机与PLC之间的串口通信程序设计方法和实现技术。 关键词:串口通信;面向对象方法;多线程;PLC 1 引言 传统的金刚石合成机控制系统是由一个PLC和一个可显示终端构成。这种传统的控制系统一般具有如下缺点: (1) 系统所有的工作都由PLC完成,其控制精度较差,致使合成的金刚石质量较差; (2) 显示终端的平面尺寸过小,这一方面使得操作人员观察系统的状态很不方便,另一方面也常常会引起误操作; (3) 金刚石合成
[网络通信]
C51入门6,串口通信实验
从上位机(PC)发送数据给单片机,并显示到单片机的LED上。 实验一:查询法 程序: /如果串口右数据发送就点亮LED #include reg52.h //主函数 void main() { TMOD=0x20; //设置定时器1为工作方式2 TH1=0xfd; //波特率设置 TL1=0xfd; // TR1=1; //启动定时器1 REN=1; //允许串口接收 SM0=0; //串行工作方式1 SM1=1; // EA=1; //开定时器中断 // ES=1; //开总中断 while(1) { if(RI==1) //接收中断标志位,如果有中断到来执行下面语句 { RI=0;
[单片机]
μC/OS—II的嵌入式串口通信模块设计
在嵌入式应用中,使用RTOS的主要原因是为了提高系统的可靠性,其次是提高开发效率、缩短开发周期。μC/OS-II是一个占先式实时多任务内核,使用对象是嵌入式系统,对源代码适当裁减,很容易移植到8~32位不同框架的微处理器上。但μC/OS-II仅是一个实时内核,它不像其他实时操作系统(如嵌入式Linux)那样提供给用户一些API函数接口。在μC/OS-II实时内核下,对外设的访问接口没有统一完善,有很多工作需要用户自己去完成。串口通信是单片机测控系统的重要组成部分,异步串行口是一个比较简单又很具代表性的中断驱动外设。本文以单片机中的串口为例,介绍μC/OS—II下编写中断服务程序以及外设驅动程序的一般思路。   1 μC/OS-I
[工业控制]
MSP430G2553 频率、占空比、脉冲宽度测量
测量频率、占空比、脉冲宽度等信号数字量应该算是430中比较简单的一个实验,而且幸运的是TI官方的示例程序中有相关的内容。 传送门: https://dev.ti.com/tirex/explore/node?devices=MSP430G2553&node=AFB5DJx-bgFTI4ERhplnuw__IOGqZri__LATEST https://dev.ti.com/tirex/explore/node?devices=MSP430G2553&node=AFB5DJx-bgFTI4ERhplnuw__IOGqZri__LATEST 进行测量的重点是对信号上升沿和下降沿的捕获,这一点利用定时器的捕获功能就可以实现。
[单片机]
<font color='red'>MSP430G2553</font> 频率、占空比、脉冲宽度测量
msp430g2553单片机 感应温度的呼吸灯
//程序烧进板子后先进入led灯交替闪烁的待机模式;按下按键后,进入应用模式,绿灯开始呼吸;此时温度上升后绿灯呼吸加快,温度下降后呼吸又会变慢。当温度过高时红灯亮 #include msp430g2553.h #define LED1 BIT0 #define LED2 BIT6 #define LED_DIR P1DIR #define LED_OUT P1OUT #define BUTTON BIT3 //P1.3为板上按键S2 #define BUTTON_OUT P1OUT //端口输出
[单片机]
51单片机串口通信使用类似printf函数的两种办法
span style= font-family: Arial; ; line-height: 26px; background-color: rgb(255, 255, 255); /span pre name= code class= cpp p style= margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; font-family: Arial; ; line-height: 26px; /p p style= margin-top: 0px; margin-bottom: 0px; padding-top: 0px;
[单片机]
51单片机<font color='red'>串口通信</font>使用类似printf函数的两种办法
高速DSP与PC实现串口通信的方法
  数字信号处理器(Digital Signal Processor,DSP)在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广泛的应用,实际运用中,通常须将DSP采集处理后的数据传送到PC机,然后进行存储和处理。   T1公司的TMS320VC33微处理器具有性价比高,同时,该芯片的I/O电平、字长、运行速度、串口功能具有大多数DSP的共同特点。本文针对TMS320VC33与PC RS-232的通讯,分析三种具体的接口电路和软件设计方法,实现高速DSP与低速设备的通讯:①通过TMS320VC33的通用I/O口实现通信;②通过TMS320VC33中可设置为通用I/O的串行引脚实现通信;③直接利用TMS320V
[网络通信]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多开源项目推荐
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved