#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)
2014-12-24 14:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|