⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gm8125.h

📁 基于51平台的串口一扩五芯片GM8125的测试程序
💻 H
字号:
/********************************************************************************
* 文件:GM8125.H
* 功能:串口一扩五芯片GM8125头文件
* 作者:宋智宁
* 日期:2005.3.7
* 备注:晶振fosc = 11.0592MHz,暂不支持波特率115200bps 
*       中断接收函数见中断函数库uart.c/uart51.c
*********************************************************************************/
/********************************************************************************
* 单通道模式:MS=1, CHANNEL=STADD2~0/SRADD2~0 (001~101), 母口与子通道直接相连
* 多通道模式:MS=0, CHANNEL=STADD2~0/SRADD2~0 (001~101), 母口波特率=子口波特率*6
* 写命令字模式:MS=0, STADD2~0=000
* 读命令字模式:MS=1, STADD2~0=000, SRADD2~0=000		 
* 命令字格式:
*  --------------------------------------
* | * | * | * | * | FL | BR2 | BR1 | BR0 | 
*  --------------------------------------
* FL--帧格式(1--11bit/frame, 0--10bit/frame)
* BR2~BR0--多通道模式波特率设置
*          000----子串口1200bps,  母串口7200bps 
*          001----子串口2400bps,  母串口14400bps  
*          010----子串口4800bps,  母串口28800bps  
*          011----子串口9600bps,  母串口57600bps  
*          100----子串口19200bps, 母串口115200bps 
*
* 注意:以上为GM8125晶振为12MHz时算的值
*       计算公式为: 子串口波特率=1200*(2^x)*f/12 
*********************************************************************************/

//--常量定义--------------------------------------
#define MAX_BUF_LEN  12  //每通道8字节的接收缓冲区
 

//--数据端口和控制端口定义-------------------------
#ifdef C51_MX  //P89C669
  extern unsigned char far UartCtrl _at_ 0x380000;
  extern unsigned char far UartState _at_ 0x280000;
#else  //AT89S52
  extern unsigned char xdata UartCtrl _at_ 0x3800;
  extern unsigned char xdata UartState _at_ 0x2800;
#endif


//--接收缓冲区结构定义-----------------------------
typedef struct{
  uint8 Ch[5][MAX_BUF_LEN]; //各通道接收缓冲区
  uint8 Len[5];     //有效数据长度
}GM8125BUF;


//--外部变量声明-----------------------------------
extern GM8125BUF SerBuf;


/******************************************************************************
* 名称:DelayXms(uint16 x)
* 功能:延时X毫秒子程序
* 入口参数:uint16 x--x ms
* 出口参数:无
* 说明:CPU--669(6时钟周期)
*		晶振--11.0592MHz
******************************************************************************/
extern void DelayXms(uint16 x);


/******************************************************************************
* 名称:GM8125_Init(uint8 frame, uint16 baud)
* 功能:GM8125初始化子程序
* 入口参数:uint8 frame--帧格式(0--10bit/f,1--11bit/f)
*           uint16 baud--母串口波特率(多通道模式)
* 出口参数:无
* 说明:串口初始化,用定时器1/波特率发生器, 上电时调用
*       复位后GM8125的帧格式为11bit, 母串口波特率为7200bps
*       晶振fosc = 11.0592MHz,暂不支持波特率115200bps 
******************************************************************************/
extern void GM8125_Init(uint8 frame, uint16 baud);


/******************************************************************************
* 名称:GM8125_ChgBaud(uint8 frame, uint16 baud)
* 功能:改变GM8125母串口波特率和帧格式子程序
* 入口参数:uint8 frame--帧格式(0--10bit/f,1--11bit/f)
*           uint16 baud--母串口波特率(多通道模式)
* 出口参数:无
* 说明:改变GM8125后,同时改变主机的波特率(多通道模式)
*       最多写3次控制字,若失败则返回-1
*       晶振fosc = 11.0592MHz,暂不支持波特率115200bps 
******************************************************************************/
extern int8 GM8125_ChgBaud(uint8 frame, uint16 baud);


/******************************************************************************
* 名称:GM8125_Send(uint8 mode, uint8 channel, uint8 buf[], uint8 len)
* 功能:GM8125数据发送子程序
* 入口参数:uint8 mode--工作模式(0--单通道模式, 1--多通道模式)
*           uint8 channel--通道号(1~5)
*           uint8 buf[]--数据指针
*           uint8 len--数据长度
* 出口参数:无
* 说明:
******************************************************************************/
extern void GM8125_Send(uint8 mode, uint8 channel, uint8 buf[], uint8 len);


/******************************************************************************
* 名称:GM8125_Rev(GM8125BUF *buffer, uint8 len)
* 功能:GM8125数据接收子程序
* 入口参数:GM8125BUF *buffer--接收缓冲区的结构指针
*           uint8 len--数据长度
* 出口参数:int8 res--1表示正常接收, -1表示缓冲区溢出
* 说明:用等待接收方式
******************************************************************************/
extern int8 GM8125_Rev(GM8125BUF *buffer, uint8 len); 


/******************************************************************************
* 名称:GM8125_Byte_Rev(uint8 dat)
* 功能:GM8125数据接收处理子程序(供中断服务程序调用)
* 入口参数:uint8 dat--接收的数据
* 出口参数:无
* 说明:供中断服务程序调用
* 使用全局变量:GM8125BUF SerBuf--串口接收缓冲区的结构
******************************************************************************/
extern void GM8125_Byte_Rev(uint8 dat);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -