msp430f149单片机串口C程序

发布者:Zhenxiang最新更新时间:2018-07-11 来源: eefocus关键字:msp430f149  单片机  串口 手机看文章 扫描二维码
随时随地手机看文章

msp430f149单片机简介:

MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。

msp430f149是基于闪存或 ROM 的超低功耗 MCU,提供 8MIPS,工作电压为 1.8V - 3.6V,具有高达 60KB 的闪存和各种高性能模拟及智能数字外设。

超低功耗低至:

0.1μA RAM (保持模式) 0.7μA (实时时钟模式) 200μA/MIPS (工作模式) 在 6μs 之内快速从待机模式唤醒

器件参数:

闪存选项:1KB – 60KB ROM 选项:1KB – 16KB RAM 选项:512B – 10KB GPIO 选项:14、22、48 引脚 ADC 选项:10 和 12 位斜率 SAR 其它集成外设:模拟比较器、DMA、硬件乘法器、SVS、12 位 DAC

(以上资料摘自于百度百科)

C语言程序(采用IAR for 430):

#include  

typedef unsigned char uchar;

typedef unsigned int uint;

 

uchar  RecBuf[256];

uchar  Windex;

uchar  Rindex; 

 

void Send1Char(uchar sendchar);

void PutString(uchar *ptr);

void com_init();//串口初始化

 

void com_init()

{

    unsigned int i;

    /*下面六行程序关闭所有的IO口*/

    P1DIR = 0XFF;P1OUT = 0XFF;

    P2DIR = 0XFF;P2OUT = 0XFF;

    P3DIR = 0XFF;P3OUT = 0XFF;

    P4DIR = 0XFF;P4OUT = 0XFF;

    P5DIR = 0XFF;P5OUT = 0XFF;

    P6DIR = 0XFF;P6OUT = 0XFF;

  

    WDTCTL = WDTPW + WDTHOLD;                 // 关闭看门狗

    P6DIR |= BIT2;P6OUT |= BIT2;              //关闭电平转换

    P6DIR |= BIT7;P6OUT &=~ BIT7;              //关闭电平转换

    P3SEL |= 0x30;                            // 选择P3.4和P3.5做UART通信端口

    

    BCSCTL1 &= ~XT2OFF;                       // XT2on

    do

    {

    IFG1 &= ~OFIFG;                           // Clear OSCFault flag

    for (i = 0xFF; i > 0; i--);               // Time for flag to set

    }

    while ((IFG1 & OFIFG));                   // OSCFault flag still set?

    BCSCTL2 |= SELM_2 + SELS;                 // MCLK = SMCLK = XT2 (safe)

    

    ME1 |= UTXE0 + URXE0;                     // 使能USART0的发送和接受

    UCTL0 |= CHAR;                            // 选择8位字符

    UTCTL0 |= SSEL1;                          // UCLK = SMCLK

    UBR00 = 0x45;                             // 波特率115200

    UBR10 = 0x00;                             //

    UMCTL0 = 0x00;                            // Modulation

    UCTL0 &= ~SWRST;                          // 初始化UART状态机

    IE1 |= URXIE0;                            // 使能USART0的接收中断

    _EINT();                                  //打开全局中断

    

    Windex = 0;

    Rindex = 0;

}

 

 

/*******************************************

函数名称:UART0_RXISR

功    能:UART0的接收中断服务函数,在这里唤醒

          CPU,使它退出低功耗模式

参    数:无

返回值  :无

********************************************/

#pragma vector = UART0RX_VECTOR

__interrupt void UART0_RXISR(void)

{

    if(RXBUF0 == 0x0d)   LPM1_EXIT;

    else

    {

        RecBuf[Windex++] = RXBUF0;

        Windex &= 0x7f;//when Windex=0x80,changed to 0x00;

    }

}

/*******************************************

函数名称:Send1Char

功    能:向PC机发送一个字符

参    数:sendchar--要发送的字符

返回值  :无

********************************************/

void Send1Char(uchar sendchar)

{

      while (!(IFG1 & UTXIFG0));    //等待发送寄存器为空         

      TXBUF0 = sendchar;  

}

/*******************************************

函数名称:PutSting

功    能:向PC机发送字符串

参    数:ptr--指向发送字符串的指针

返回值  :无

********************************************/

void PutString(uchar *ptr)

{

      while(*ptr != '\0')

      {

            Send1Char(*ptr++);                     // 发送数据

      }

      while (!(IFG1 & UTXIFG0));

      TXBUF0 = 0x0d;  

      while (!(IFG1 & UTXIFG0));

      TXBUF0 = 0x0a;                              //发送换行指令

}

 

 

/********************主函数********************/

void main(void)

{

 

    com_init();

    

    PutString("welcome to my blog");

    PutString("I am meizumx4!");

    

    while(1)

    {

        LPM1;

    }

}


-------------------------------------------------------

通信格式:N.8.1,  115200

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

------------------------------------------------------


关键字:msp430f149  单片机  串口 引用地址:msp430f149单片机串口C程序

上一篇:msp430单片机实现常按键和短按键加去抖功能
下一篇:MSP430单片机USART串口发送字符和字符串

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

嵌入式开发 | 单片机能用C++开发吗?
通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少。 那么究竟能不能用C++开发单片机呢?答案肯定是可以的。 下面基于Keil、STM32,用C++编程点亮LED,给初学者提供一下思路。 为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少? C语言是面向过程的语言,C++是面向对象的编程语言。结合本文来说,面向过程相比面向对象的编程,生成代码量(bin文件)更小,运行效率更高。 所以,C语言相比C++具有更小代码量(bin文件)、更快的运行速度。 当然,这里是C相对C++而言。其实,汇编相对C而言,具有更小代码量和更快的运行速度。(可以参看文章:用 汇编 和 C语
[单片机]
STM32串口中断使用
简介:STM32串口中断使用:配置串口时钟在void Rcc_Configuration(void)函数中实现,配置串口管脚在void UsartGPIO_Configuration(void)中实现;初始化参数设置串口中断配置。 以提高CPU的利用率。在程序中处理流程如下: 一:串口初始化 1.配置串口时钟 在void Rcc_Configuration(void)函数中实现 1.void Rcc_Configuration(void) 1.{ 2. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE); 3.
[单片机]
51单片机实现模拟打乒乓球
电子 乒乓球 游戏机 ********************** 初始化 ********************** lw bit 20h.0 rw bit 20h.1 speed bit 20h.2 sd bit 20h.3 fs bit 20h.4 jq bit 20h.5 zy bit 20h.6 fq bit 20h.7 date equ p0 led equ p1 rp equ p3.0 lp equ p3.3 ks equ p3.2
[单片机]
51<font color='red'>单片机</font>实现模拟打乒乓球
工作频率可动态调整的单片机系统设计
摘要:介绍一种采用可编程CMOS频率合成器DS1077设计的单片机系统,使单片机能根据环境需要动态调整系统的工作频率,既能满足系统求的实时处理能力,又尽可能地降低系统的耗电量及引起的电磁干扰。同时还讨论了系统改变工作频率后对RS232串行通讯的影响以及解决办法确保该系统在不的工作频率下仍能正常进行RS232串行通信。这种单片机系统的变频设计提高了系统的适用范围和兼容性,使系统设计更加灵活。 关键词:可编程CMOS频率合成器 串行通讯 动态编程 DS1077 在单片机系统中,总希望单片机能够工作于最大频率,以提高系统的实时处理能力。但单片机系统工作频率越高,其耗电量及引起的电磁干扰也就越大,并且单片机工作频率的选择直接影响到RS
[单片机]
用8位单片机实现串口-以太网转换器
单片机或微控制器(MCU)(也称为嵌入式系统)已经在各个领域得到了广泛的应用。目前绝大多数系统都是以MCU为核心,与一些监测、伺服、指示设备配合实现一定的功能。以太网是当今最受欢迎的局域网之一,现已成为社会重要的基础信息设施之一, 是信息流通的重要渠道,如果嵌入式系统能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。 将嵌入式系统与Internet相连的主要困难在于:Internet上面的各种通信协议对于存储器、运算速度等的要求比较高,而嵌入式系统中除部分32位处理器以外,大量存在的是8位和16位MCU,支持TCP/IP等Internet协议将占用大量系统资源,从而影响本来的功能或
[单片机]
介绍几种单片机打印调试信息的方法
单片机作为一种嵌入式系统,通常需要在开发过程中进行调试和输出调试信息,以便开发者能够及时发现问题并进行解决。本文将介绍几种常用的单片机打印调试信息的方法。 1. 串口输出 串口输出是最常用的单片机打印调试信息的方法。单片机通过串口发送数据到计算机,然后在计算机上进行接收和显示。需要注意的是,单片机和计算机之间需要使用串口线进行连接,同时还需要设置波特率、数据位、停止位等参数。 在单片机的程序中,可以使用printf函数将需要输出的调试信息发送到串口。例如,下面的代码片段可以将一个整数值输出到串口: ```c #include stdio.h #include string.h int main() { int num =
[单片机]
介绍几种<font color='red'>单片机</font>打印调试信息的方法
单片机 MSP430 独立按键检测
可以不用while等待。 定义函数 #define CPU_F ( (double) 8000000) #define delay_us( x ) __delay_cycles( (long) (CPU_F * (double) x / 1000000.0) ) #define delay_ms( x ) __delay_cycles( (long) (CPU_F * (double) x / 1000.0) ) #define CO 1 #define SET 2 #define UP 3 #define DOWN 4 #define key_01 (P2IN&BIT5) #define key_02 (P
[单片机]
基于PIC单片机的机器人灵巧手的控制系统设计
  当代机器人研究的领域已经从结构环境下的定点作业中走出来,向非结构环境下的自主作业方面发展。而机器人灵巧手相当于安装在机器人臂上的可独立实现精细操作运动的一组机器人,是真正拟人化并能实现灵活操作的机器人手。他对于提高空间机器人的工作能力具有重要意义,并且将来还可以尝试将机器人灵巧手用于战场探雷和排雷、核工业设备的检测和修理等危险作业[1]。在机器人灵巧手控制方面的研究在国内只有少数的科研机构 进行,而且成本较高。在本文寻求采用一种较为合适的单片机来作为实现控制的核心,基于PIC单片机的强大功能所以采用PIC系列单片机。 1PIC单片机特点   PIC 系列单片机是美国Microchip公司出品的8 b微处理器,但是他的速度与
[单片机]
基于PIC<font color='red'>单片机</font>的机器人灵巧手的控制系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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