📄 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 + -