?? 2_uart_sst.h
字號:
//===========================SST MCU擴展的2個UART使用說明==============================
// 本例程是使用SST MCU(SST89E/V52RD,54RD,58RD,516RD)的特殊硬件功能做的,新增加2個擴展UART的功能.
// 擴展UART的特點:采用全雙工方式,即:收發不用分時,若采用半雙工方式,可擴展5個新的UART
//
// 1.發送和接收均采用中斷方式,不占用標準8052的資源(定時器,硬件中斷,RAM),
// 占用的資源均是SST MCU的特殊資源,因此這個例子只適合SST的單片機,不能用于其它非SST的MCU
// 2.發送采用UART2_send_out ( uchar *p , uint len )函數,
// 直接將要發送的數據區的起始地址送給P,數據長度送給LEN即可
// 3.接收采用中斷方式接收,接收的數據放在自己定義的變量的uart2_rx.buff起始地址的緩沖器內.
// 4.使用本例程請參考MAIN.C函數.//
// 4.0 加入本文件進行一些函數的聲明和設置參數(晶振頻率,通訊的波特率,緩沖區的大小,UART的I/O口定義)
// 4.1 定義一個接收用的變量,標志和緩沖區:
// extern xdata struct uart1_rx_strut
// {
// uchar no_data_count ; //接收緩沖區無數據的時間計數,接收到數據,將置為0,沒有數據時,20ms加一(在定時中斷內加一)
// uchar rx_state ; //接收的狀態
// uchar rx_bitcont ; //接收的一個數據的位數(常用的為8位寬度)
// uchar buff[MAX_SIZE_BUF] ; //接收緩沖區大小
// uint count ; //已經接收的數據個數,也可根據接收的數目,來判斷有無新數據,在取出數據后,將這個數目清零
// }uart2_rx,uart1_rx ;
// 4.2 對擴展UART進行初始化和打開:
// UART_SST_init( ) ; //調用擴展UART的初始化函數
// UART1_rx_enable( ); //允許UART1進行接收
// UART2_rx_enable( ); //允許UART1進行接收
// 4.3 接收可根據自己定義的接收變量中的uart2_rx.count(已接收到的數量)來判斷有無接收到的新數據
// 若uart2_rx.count=0,則沒有新數據進來,若uart2_rx.count=12,則表示已經接收到12個數據
//===============================================================================================
// 香港弘微科技有限公司(SPAC)
// 技術支持:田伯運 0755-26010579 andy.tian@spacltd.com.cn
//===============================================================================================
#ifndef __2_UART_SST_H__
#define __2_UART_SST__
#include <SST89x5xRD.H>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define MAX_SIZE_BUF 60 //定義接收緩沖區的大小為60,因為一個發送或接收的結構為4+BUF,
//在256個XRAM中分配4組(UART1.RX;UART1.TX; UART2.RX;UART2.TX)
#define SYSCLK 11059200 //12000000 //晶振頻率
#define BAUDRATE1 9600 //4800 //定義PCA_UART1的波特率,19200不行
sbit TXD1= P1^3 ; //定義P1.3為PCA_UART1的發送I/O口
sbit RXD1= P1^4 ; //定義P1.4為PCA_UART1的接收I/O口
sbit TXD2= P1^5 ; //定義P1.3為PCA_UART1的發送I/O口
sbit RXD2= P1^6 ; //定義P1.4為PCA_UART1的接收I/O口
//---------2_UART_SST.C-------------------
extern void UART_SST_init(void) ; //SST UART初始化
extern void UART1_rx_enable(void); //SST uart1接收使能
extern void UART1_rx_disable(void); //SST uart1接收關閉
extern void UART1_send_out ( uchar *p , uint len ); //SST UART1數據發送
extern void UART2_rx_enable(void); //SST uart2接收使能
extern void UART2_rx_disable(void); //SST uart2接收關閉
extern void UART2_send_out ( uchar *p , uint len ); //SST UART2數據發送
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -