找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4019|回复: 1
收起左侧

MSP430笔记:UART代码

[复制链接]
ID:70976 发表于 2014-12-24 14:30 | 显示全部楼层 |阅读模式
#ifndef __UART_H

#define __UART_H


#define uchar unsigned char

#define uint unsigned int


/****************************************前言*******************************************

这个东西是我根据自己的使用方式修改的,注释方面也只是按照自己感觉有必要的的部分添加,

尽量提高了可移植性,代码如有问题(功能不足,可移植性不高,不稳定,注释不全等)请联系我

E-mail: 410064008@qq.com

/*****************************************已知问题*****************************

1.在9600以外的波特率下工作会出现乱码

/**************************************使用说明***********************************

文件名Uart.h

版本:0.1

文件功能:调用MSP430的硬件UART

测试平台:windows8,IAR5.60.7,MSP430G2553 launchpad

备    注:请注意查看本文件中的函数说明

          本函数会占用MSP430的P1.1,P1.2.(既硬件UART脚。在不同的单片机中可能不同哦)

          默认开UART接收中断且中断中没有内容。要使用UART接收中断要开全局中断,要使用扫描法接收数据应该,关闭UART中断


*使用步骤:1.查看相关函数

*          2.根据单片机型号修改头文件

*          3.执行初始化

*          4.执行相关函数


***************************************更新说明*************************************

更新时间:2014/4/29

1.修改初始化函数,使其能够根据系统时钟修改寄存器

2.添加部分的注释

3.添加UartPrintf(,)函数

4.去除函数中原本的全局变量;

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





/******************************UART发送字节函数********************************/

/*

函数名称:void UartPutchar(unsigned char c)

函数功能:发送一个char型

传入参数:unsigned char c :要发送的参数

传出参数:无

*/

void UartPutchar(unsigned char c);



/*********************************UART接收字节数据****************************

函数名称:unsigned char UartGetchar()

函数功能:接收上位机发来的数据

传入参数:无

传出参数:接收到的char型数据

*/

unsigned char UartGetchar();



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

函数名称:void Uart_init(uint m)

函数功能:UART的初始化

输入参数:uint m :系统的主频率 16 就指16Mhz

输出参数:无

使用示例:Uart_init(16);                //在16Mhz的系统主频下初始化UART

备    注:

          baud :9600

          BRCLK:系统时钟

          设定UART的IO口

          使UART进入工作状态

          UART中断使能

*/

void Uart_init(uint m);  




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

函数名称:void Write_int(long d,char *Str,char IS_Line_Feed)

函数功能:输出指定类型的int型

传入参数:long d :要输出的int,char *Str 单位  char IS_Line_Feed 是否换行  1:是 其它:否

传出参数:无

*/

void Write_int(long d,char *Str,char IS_Line_Feed);



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

函数名称:void Send_String(char *Str)

函数功能:输出字符串

传入参数:char *Str 要输出的字符串

传出参数:无

使用示例:void Send_String("hell")

*/

void Send_String(char *Str);


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

函数名称:void Write_double(double data,char *Str,char IS_Line_Feed)

函数功能:输出double型

传入参数:double data:要输出的double型,char *Str:输出字符串:一般是单位,char IS_Line_Feed  等于1时自动换行

传出参数:无

*/

void Write_double(double data,char *Str,char IS_Line_Feed);



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

函数名称:void UartPrintf(char *fmt,...)

函数功能;printf输出,

就像 c语言中的printf函数一样使用

*/

void UartPrintf(char *fmt,...);



#endif



/*    使用例子



      Write_int(1234,"A",1);  

      Send_String("ERFGTHJ");

      Write_double(3.4567,"V",1);





*/

测试程序 UART.rar (266.37 KB, 下载次数: 103)
回复

使用道具 举报

ID:82444 发表于 2015-6-8 22:16 | 显示全部楼层
很专业的感觉,好好学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表