datasheet

MSP430单片机USART串口发送字符和字符串

2018-07-11来源: eefocus 关键字:MSP430  单片机  USART  串口发送

MSP430单片机的官方历程中有使用串口中断发送字符以及字符串的程序,但是移植性不高,我专门写了两个函数,用于发送单个字符合字符串,不需要使用中断,供大家参考。

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

*程序描述:单片机的P3.4、P3.5作为串口发送字符和字符串

*作者    :Zhenhua Liu

*时间    :2017.11.01  23:00

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

#include "msp430x14x.h"

#define uchar unsigned char

uchar DATA[]="hello world my name!";

void sendString(unsigned char *p);

void sendChar(char c);

void uartInit(void);

void main()

{

  // Stop watchdog timer to prevent time out reset

        uchar *p;

        p=DATA;

        WDTCTL = WDTPW + WDTHOLD;

        uartInit();     //初始化串口P3.4和P.35

        sendChar('k');

        sendString(p);

          while(1);

}

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

*函数名: sendChar()                                                          /

*作用  :USART0发送一个字符                                                  /

*返回值:无                                                                  /

*参数  :一个字符                                                            /

*作者  :Zhenhua Liu                                                         / 

*时间  :2017.11.01                                                          / 

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

void sendChar(char c){

   TXBUF0=c;

   while((UTCTL0&0X01)==0);//等待数据发送完毕 

}

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

*函数名: sendString()                                                        /

*作用  :USART0发送字符串                                                    /

*返回值:无                                                                  /

*参数  :char型指针                                                          /

*作者  :Zhenhua Liu                                                         / 

*时间  :2017.11.01                                                          / 

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

void sendString(unsigned char *p){

  

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

            TXBUF0=*p++;

            while((UTCTL0&0X01)==0);//等待数据发送完毕   

          }

}

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

*函数名: uartInit()                                                          /

*作用  :USART0的初始化配置,使用P3.4和P3.5,不使用中断                      /

*返回值:无                                                                  /

*参数  :无                                                                  /

*作者  :Zhenhua Liu                                                         / 

*时间  :2017.11.01                                                          / 

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

void uartInit(){

       P3DIR|=BIT4+BIT5;

        P3SEL|=BIT4+BIT5;

        

        ME1 |= UTXE0 + URXE0;  // 使能USART0收发

        UCTL0 |= CHAR;         // 8-bit 数据,一位停止位

        UTCTL0 |= SSEL0;       // 选择时钟,UCLK = ACLK,32768

        UBR00 = 0x03;          // 32k/9600

        UBR10 = 0x00;          //

        UMCTL0 = 0x4a;         // Modulation

        UCTL0 &= ~SWRST;       // 初始化UART0状态机,一般要设置好串口之后才复位      

}



关键字:MSP430  单片机  USART  串口发送

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/2018/ic-news071140252.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:msp430f149单片机串口C程序
下一篇:NRF24L01实现msp430单片机通信(SPI)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430单片机低功耗结构原理

当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。各控制位的作用如下:SCG1: 复位,使能SMCLK;置位,禁止SMCLK。SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且LFXT1CLK不用于MCL
发表于 2018-11-21

基于MSP430F5529的金属循迹小车

Normal_speed  3500#define Turn_S_speed  3500#define Turn_B_speed  2500void initalRTC(void){    RTCCTL01 = RTCMODE + RTCBCD + RTCHOLD + RTCTEV_1;    RTCHOUR = 0x04;    RTCMIN = 0x30;    RTCSEC = 0x00;    RTCDAY
发表于 2018-10-17

MSP430F5529液晶SPI通信协议

;{           p1[b]=y+0x30;           y/=10;           b++;      }    }    else 
发表于 2018-10-17

msp430f5419/38学习笔记之USCI:UART模式

   msp430f541x、msp430f543x多达4个通用串行通信接口(USCI)模块,支持多种串行通信模式,不同的 USCI 模块支持不同的模式。  USCI_Ax模块支持:UART模式;IrDA通信的脉冲整形;LIN通信的自动波特率检测;SPI模式;  USCI_Bx模块支持:IIC模式;SPI模式;UART模式:    在异步模式下,USCI_Ax模块通过两个外部引脚UCAxRXD和UCAxTXD将芯片连接到外部系统。当UCSYNC位清零时,选择UART模式。  UART模块特征包括
发表于 2018-10-15
msp430f5419/38学习笔记之USCI:UART模式

msp430f5419/38学习笔记之时钟系统

),DCOCLK = 2*DCOCLKDIV = 2.097152MHz。    默认选择了使用 XT1的 FLL操作,为了启用 XT1功能,必须将与 XT1引脚对应的 PSEL置位。当 XT1CLK 使用 32768Hz 晶振时,由于XT1不会立即稳定,失效逻辑控制位会立即选择 REFOCLK 作为 ACLK 时钟源。一旦晶体振荡稳定后,由于 FLL的作用,MCLK 和SMCLK 都将稳定在 1.047586MHz,Fdco稳定在 2.097152MHz。    状态寄存器(SCG0,SCG1,OSCOFF和CPUOFF)用于配置 MSP430的工作模式,使能和禁止
发表于 2018-10-15
msp430f5419/38学习笔记之时钟系统

MSP430F5438A单片机基于SPI的FatFs移植笔记

省事只用了成功、读写错误、参数错误三个,原因是写保护我没有编写专门的函数去判断,而未准备好出现的概率很低。各个函数的输入参数具体到每个函数再进行一一说明那么下面首先以初始化程序DSTATUS disk_initialize (BYTE pdrv);具体说一下:通过TI的单片机MSP430F5438A进行函数的实现步骤这里需要参考的良心文档以及网站有:1. FatFs官方网站:http://www.elm-chan.org/fsw/ff/00index_e.html说明很浅显,优点是易懂缺点是靠他说的那点儿说明实现简直不可能2. 一个叫Tilen Majerle的老外的网站,基于STM32系列单片机开发的FatFs:http
发表于 2018-09-19

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved
pt type="text/javascript" src="//v3.jiathis.com/code/jia.js?uid=2113614" charset="utf-8">