MSP430 - G2553之串口操作

发布者:pengbinyyy最新更新时间:2018-07-14 来源: eefocus关键字:MSP430  G2553  串口操作 手机看文章 扫描二维码
随时随地手机看文章



#include

 

void delay1s(void) 

{

  int t = 1000;

  while (t--)

    __delay_cycles(1000);    

}

 

#define UART_TXD 0x02                                  // TXD on P1.1 (Timer0_A.OUT0)

                                              

#define UART_TBIT (1000000 / 9600)                     // 9600 Baud, SMCLK = 1MHz

                                                       // Globals for transmit UART communication

unsigned int txData;                                   // UART internal variable for TX

 

void TimerA_UART_tx(unsigned char byte);               // Function prototypes

void TimerA_UART_print(char *string);

 

void main(void)

{

  WDTCTL = WDTPW + WDTHOLD;                            // Stop watchdog timer

  DCOCTL = 0x00;                                       // Set DCOCLK to 1MHz

  BCSCTL1 = CALBC1_1MHZ;

  DCOCTL = CALDCO_1MHZ;

 

  P1OUT = UART_TXD;                                    // Initialize P1.1

  P1SEL = UART_TXD;                                    // Timer function for TXD pin

  P1DIR = UART_TXD;                                    // Set TXD pin to output

                                                       // Timer_A for transmit UART operation

  TA0CCTL0 = OUT;                                      // Set TXD Idle as Mark = '1'

  TA0CCTL1 = SCS + CM1 + CAP;                          // Sync, Neg Edge, Capture

  TA0CTL = TASSEL_2 + MC_2;                            // SMCLK, start in continuous mode

 

  P2DIR |= (BIT3 | BIT4); //Set P1.0 and P1.6 to outputs

  

  _BIS_SR(GIE);                                        // Enable CPU interrupts

 

  while (1) {

    TimerA_UART_print("G2553 TimerA UART\r\n");          // Send test message 

    TimerA_UART_print("READY.\r\n");

    P2OUT ^= 0x18;

    delay1s();

  }

}

 

void TimerA_UART_tx(unsigned char byte)              // Outputs one byte using the Timer_A UART

{              

  while (TACCTL0 & CCIE);                              // Ensure last char got TX'd

 

  TA0CCR0 = TAR;                                       // Current state of TA counter

  TA0CCR0 += UART_TBIT;                                // One bit time till first bit

  txData = byte;                                       // Load transmit data, e.g. 'A'=01000001

  txData |= 0x100;                                     // Add mark stop bit, e.g. 101000001

  txData <<= 1;                                        // Add space start bit, e.g. 1010000010

  TA0CCTL0 = OUTMOD0 + CCIE;                           // Set TXD on, enable counter interrupt

}

 

void TimerA_UART_print(char *string) {                 // Prints a string using the Timer_A UART

  while (*string)

    TimerA_UART_tx(*string++);

}

 

#pragma vector = TIMER0_A0_VECTOR                      // Timer_A UART - Transmit ISR

 

__interrupt void Timer_A0_ISR(void) {

  static unsigned char txBitCnt = 10;

  TA0CCR0 += UART_TBIT;                                // Add Offset to CCRx

 

  if (txBitCnt == 0) {                                 // All bits TXed?

    TA0CCTL0 &= ~CCIE;                                 // All bits TXed, disable interrupt

    txBitCnt = 10;                                     // Re-load bit counter

  }

  else {

    if (txData & 0x01)

      TA0CCTL0 &= ~OUTMOD2;                            // TX Mark '1'

    else

      TA0CCTL0 |= OUTMOD2;                             // TX Space '0'

  }

  txData >>= 1;                                        // Shift right 1 bit (low bits TX'ed first)

  txBitCnt--;

}


关键字:MSP430  G2553  串口操作 引用地址:MSP430 - G2553之串口操作

上一篇:MSP430G2553 输出ACLK和SMCLK
下一篇:MSP430按键控制串口发送数据

推荐阅读最新更新时间:2024-03-16 16:08

MSP430F5529的P1.7、P2.2中断和频率设置
MSP430F5529单片机的P1.7、P2.2 io口中断和频率设置程序: #include "msp430F5529.h" #define P15_H (P1IN & BIT5); #define P15_L (P1OUT & (~BIT5)); int tt=0,temp,kk,i; void delay(int ns) { int kk; while(ns--) for(kk=0;kk 120;kk++); } //******A/D转换函数设置*****// void adc1() { P1SEL |=BIT6; //转换模拟信号从P1.6输入,内部集成了转换模块 ADC12CTL0 =ADC12O
[单片机]
MSP430 F5529 硬件SPI OLED 单片机 0.96英寸7针OLED SPI 6针OL
https://www.ti.com.cn/cn/lit/ds/symlink/msp430f5529.pdf?ts=1600611951477&ref_url=https%253A%252F%252Fwww.ti.com.cn%252Fproduct%252Fcn%252FMSP430F5529 https://www.ti.com/lit/ug/slau533d/slau533d.pdf UCA0 用了这个串口就不能用了 P2.7//UCA0CLK P3.2//UCA0STE P3.3/UCA0TXD/UCA0SIMO P3.4/UCA0RXD/UCA0SOMI #include msp430.h #incl
[单片机]
<font color='red'>MSP430</font> F5529 硬件SPI OLED 单片机 0.96英寸7针OLED SPI 6针OL
基于MSP430F149的点光源跟踪系统设计
摘要:本设计以MSP430F149为控制核心,通过放大器LM324做比较器比较光敏电阻感受光强度,控制减速后的步进电机,调节激光笔上下左右转动,实现精确跟踪光源的目的。系统采用LM317调节电压的方式实现LED电流一定范围内的调节,利用MSP430F149内部的ADC采集OPA335放大后的电压信号,并计算出电流值,采用12864液晶进行实时显示。经测试,激光笔能准确地跟踪光源。 1 系统方案论证 1.1 系统各模块方案的选择与论证 (1)电机驱动模块。采用L298驱动芯片组成驱动电路,可以通过控制中心输出的高低电平对电动机的方向进行控制,并且可以通过PWM波直接控制电动机的速度。电路较为简 ~单,容易实现,驱动能力和
[单片机]
基于<font color='red'>MSP430</font>F149的点光源跟踪系统设计
基于MSP430单片机模块设计方案
当前,能源短缺成为制约社会经济发展的重要因素,如何实现能源高效利用是我们面临的重要问题。LED 作为一种新型的绿色光源产品,有着节能、环保、寿命长、体积小等特点,在实际生活中的利用也越来越广泛。而现在太阳能电池板充电技术已经得到了很大的发展,在公路两旁的路灯很多就是利用太阳能进行充电。现有的充电和照明技术都是根据预先的设置进行工作,不能根据环境的改变而实现自动调节,因此在能源利用率方面还可以进一步提高。 原有的充电技术中,太阳能电池板的角度位置是固定的,所以在一天中面对太阳光照的角度也不同。这样使太阳能充电无法达到最大效率。如果设计系统能够根据一天当中太阳位置的变化而调整角度,使充电电池板始终正对太阳,获得最大光照,这
[单片机]
基于MSP430的超低功耗待机解决方案
电子设备产品种类繁多,计算机、电视机、手机乃至可穿戴设备,这些产品在使用过程中有大量的能耗损失,及时在待机的情况下也有一定的功耗。本文介绍基于MSP430的超低功耗待机解决方案,将待机功耗降到最低。 私人家中和办公室使用的电气产品的数目正在以极快的速度增加。这些产品中的大多数,例如音频/视频产品和办公设备,都有着待机期间耗电量大的问题。这不仅浪费电力和资金,同时对环境也有不利的影响。正是由于这个原因,现在对于大部分产品,都有相对应的法规来严格地限制待机期间的能耗。 目前能源之星( Energy Star)的规范规定待机模式下的能耗应少于或等于1至2 瓦特,根据设备类型有所不同,例如,对音频/视频产品而言,这个值固定为1 瓦
[单片机]
基于<font color='red'>MSP430</font>的超低功耗待机解决方案
基于MSP430F2012和IA4420的主动式RFID标签设计
  射频识别(RFID) 是近年来成长最快的无线技术之一,它将条形码及无线技术的优势带入资产管理、产品跟踪、海运及运输识别、库存控制和定位检测中。大多数RFID系统采用通过RF从阅读器获取电源的被动式标签。这样有利于减小标签尺寸和降低成本,但是会限制读取范围和数据存储能力。带电池的主动式标签可以提供较大范围的读取能力和更强的可靠性,不过其尺寸较大,也更贵一些。采用最新的低功耗单片机和无线数传芯片,设计一种不仅读取距离远、可靠度高,而且成本更低、寿命更长的主动式RFID标签是本设计研究的目的。   设计方案分析   本设计完成的主动式RFID应具有:低成本、低功耗、阅读距离长及距离可调、电池供电等特性。分析主动式RFID的这些特
[单片机]
基于<font color='red'>MSP430</font>F2012和IA4420的主动式RFID标签设计
MSP430F247串口发送字符串并接受PC机发来的并送回电脑显示
//****************************************************************************** // MSP430x24x Demo - USCI_A0, 9600 UART Echo ISR, DCO SMCLK // // 实验效果说明:首先发送一个数组的数据到PC,然后接受PC发送来的数据,在发送到 // PC机上。 // Baud rate divider with 1MHz = 1MHz/9600 = ~104.2 // ACLK = n/a, MCLK = SMCLK = CALxxx_1MHZ = 1MHz // //
[单片机]
基于MSP430系列单片机复位电路系统设计分析
   0 引言    TI公司的混合信号处理器 MSP430系列单片机以其处理能力强大、外围器件集成度高、功率消耗低、产品系列全面、全系列工业级等特点,作为目前MCU主流市场的产品之一,在电子应用领域中得到广泛应用,被越来越多的电子设计师所青睐。由于 复位电路设计问题而导致的系统出现上电后不工作或状态不正确是很多MSP430单片机电路设计者们在设计、调试和应用中曾遇到过的问题,尽管这种情况发生的几率很低,但对于可靠性要求较高的应用场合,这个现象仍需引起电子设计人员的足够重视。   为此,本文对MSP430全系列单片机的复位系统和复位机制进行了详细深入的分析,并针对性地提出了具体的外围复位电路设计方案和有关电子元器件的详细
[单片机]
基于<font color='red'>MSP430</font>系列单片机复位电路系统设计分析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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