|
#ifndef __UART_H
#define __UART_H
#define uchar unsigned char
#define uint unsigned int
/****************************************前言*******************************************
這個(gè)東西是我根據(jù)自己的使用方式修改的,注釋方面也只是按照自己感覺(jué)有必要的的部分添加,
盡量提高了可移植性,代碼如有問(wèn)題(功能不足,可移植性不高,不穩(wěn)定,注釋不全等)請(qǐng)聯(lián)系我
E-mail: 410064008@qq.com
/*****************************************已知問(wèn)題*****************************
1.在9600以外的波特率下工作會(huì)出現(xiàn)亂碼
/**************************************使用說(shuō)明***********************************
文件名Uart.h
版本:0.1
文件功能:調(diào)用MSP430的硬件UART
測(cè)試平臺(tái):windows8,IAR5.60.7,MSP430G2553 launchpad
備 注:請(qǐng)注意查看本文件中的函數(shù)說(shuō)明
本函數(shù)會(huì)占用MSP430的P1.1,P1.2.(既硬件UART腳。在不同的單片機(jī)中可能不同哦)
默認(rèn)開(kāi)UART接收中斷且中斷中沒(méi)有內(nèi)容。要使用UART接收中斷要開(kāi)全局中斷,要使用掃描法接收數(shù)據(jù)應(yīng)該,關(guān)閉UART中斷
*使用步驟:1.查看相關(guān)函數(shù)
* 2.根據(jù)單片機(jī)型號(hào)修改頭文件
* 3.執(zhí)行初始化
* 4.執(zhí)行相關(guān)函數(shù)
***************************************更新說(shuō)明*************************************
更新時(shí)間:2014/4/29
1.修改初始化函數(shù),使其能夠根據(jù)系統(tǒng)時(shí)鐘修改寄存器
2.添加部分的注釋
3.添加UartPrintf(,)函數(shù)
4.去除函數(shù)中原本的全局變量;
****************************************************/
/******************************UART發(fā)送字節(jié)函數(shù)********************************/
/*
函數(shù)名稱:void UartPutchar(unsigned char c)
函數(shù)功能:發(fā)送一個(gè)char型
傳入?yún)?shù):unsigned char c :要發(fā)送的參數(shù)
傳出參數(shù):無(wú)
*/
void UartPutchar(unsigned char c);
/*********************************UART接收字節(jié)數(shù)據(jù)****************************
函數(shù)名稱:unsigned char UartGetchar()
函數(shù)功能:接收上位機(jī)發(fā)來(lái)的數(shù)據(jù)
傳入?yún)?shù):無(wú)
傳出參數(shù):接收到的char型數(shù)據(jù)
*/
unsigned char UartGetchar();
/****************************************************************
函數(shù)名稱:void Uart_init(uint m)
函數(shù)功能:UART的初始化
輸入?yún)?shù):uint m :系統(tǒng)的主頻率 16 就指16Mhz
輸出參數(shù):無(wú)
使用示例:Uart_init(16); //在16Mhz的系統(tǒng)主頻下初始化UART
備 注:
baud :9600
BRCLK:系統(tǒng)時(shí)鐘
設(shè)定UART的IO口
使UART進(jìn)入工作狀態(tài)
UART中斷使能
*/
void Uart_init(uint m);
/*******************************
函數(shù)名稱:void Write_int(long d,char *Str,char IS_Line_Feed)
函數(shù)功能:輸出指定類型的int型
傳入?yún)?shù):long d :要輸出的int,char *Str 單位 char IS_Line_Feed 是否換行 1:是 其它:否
傳出參數(shù):無(wú)
*/
void Write_int(long d,char *Str,char IS_Line_Feed);
/**********************************
函數(shù)名稱:void Send_String(char *Str)
函數(shù)功能:輸出字符串
傳入?yún)?shù):char *Str 要輸出的字符串
傳出參數(shù):無(wú)
使用示例:void Send_String("hell")
*/
void Send_String(char *Str);
/**********************************
函數(shù)名稱:void Write_double(double data,char *Str,char IS_Line_Feed)
函數(shù)功能:輸出double型
傳入?yún)?shù):double data:要輸出的double型,char *Str:輸出字符串:一般是單位,char IS_Line_Feed 等于1時(shí)自動(dòng)換行
傳出參數(shù):無(wú)
*/
void Write_double(double data,char *Str,char IS_Line_Feed);
/*************************************************************
函數(shù)名稱:void UartPrintf(char *fmt,...)
函數(shù)功能;printf輸出,
就像 c語(yǔ)言中的printf函數(shù)一樣使用
*/
void UartPrintf(char *fmt,...);
#endif
/* 使用例子
Write_int(1234,"A",1);
Send_String("ERFGTHJ");
Write_double(3.4567,"V",1);
*/
測(cè)試程序
UART.rar
(266.37 KB, 下載次數(shù): 103)
2014-12-24 14:29 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|