#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)
|