eecs-bsp-test-code-2/inc/uart2.h

65 lines
7.2 KiB
C
Raw Permalink Normal View History

2022-08-22 14:51:00 +08:00
/********************************** Uart2串行通信模块 V2.0 说明 ***************************************************************
Uart2模块提供Uart2模块初始化函数3,1enumUart2EventRxd
(1) Uart2Init(unsigned long band,unsigned char Uart2mode)Uart2模块初始化函数
unsigned long band2bps81
unsigned char Uart2mode2
Uart2UsedforEXT 2EXT扩展插座上(TTL标准串口)
Uart2Usedfor485 2485
Uart2Usedfor485ModBus 2485ModBus协议收发 202252
(2) void SetUart2Rxd(char *RxdPt, unsigned int Nmax, char *matchhead, unsigned int matchheadsize);
2enumEventRxd事件
char *RxdPt
unsigned int Nmax65535Nmax后 202252
char *matchhead
unsigned int matchheadsize
Nmax=1enumEventUart2Rxd事件
0 < matchheadsize < Nmaxmatchheadsize个字节与*matchhead处数据完全匹配Nmax数据时产生enumEventRxd事件
matchheadsize = Nmax
matchheadsize=0 matchheadsize > NmaxNmax数据时产生enumEventRxd事件
enumEventRxd事件发出后 202252
(3) char Uart2Print(void *pt, unsigned int num)1uS左右时间
void *pt
unsigned int num
enumTxOKsys正确接受sys将尽硬件资源最大可能及时发送数据
enumTxFailure
10.1mS10mS
"异步"
(4) char GetUart2TxStatus(void) Uart2发送状态
enumUart2TxFree:2
enumUart2TxBusy,2
(5) Uart2接收事件enumUart2EventRxd
2 Uart2UsedforEXT Uart2Usedfor485
Uart2接收事件为1
2 Uart2Usedfor485ModBus 202252
Uart2接收事件为ModBus数据帧<4
1CRC校验CRC校验
2ModBus数据帧有效字节数256
121mS
(1) 12.
(2) 12
(3) 12ModBus
a1USB接口上2EXT扩展485485
b500800 bps
c
42022522485ModBus协议数据帧监测功能使"STC-B学习板"便ModBus协议的节点等功能 202252
18008400450 2021328 202252
*/
#ifndef _uart2_H_
#define _uart2_H_
extern void Uart2Init(unsigned long band,unsigned char Uart2mode); //串口2初始化参数波特率、串口2位置
enum Uart2PortName {Uart2UsedforEXT,Uart2Usedfor485,Uart2Usedfor485ModBus}; // Uart2UsedforEXT —— 串口2在EXT扩展插座上(TTL标准串口)
// Uart2Usedfor485 —— 串口2用于485通信半双工。发送数据包时不能接收数据
// Uart2Usedfor485ModBus —— 串口2用于485上ModBus协议收发
extern void SetUart2Rxd(void *RxdPt, unsigned int Nmax, void *matchhead, unsigned int matchheadsize); //设置接收条件数据包存放位置、大小包头匹配字符、匹配字符个数。符合条件的包将产生enumUart2EventRxd事件
extern char Uart2Print(void *pt, unsigned int num); //发送数据包。非阻塞函数。数据包位置、大小。返回值enumUart2TxOK调用成功enumUart2TxFailure失败串口忙上一数据包未发完
extern char GetUart2TxStatus(void); //获取串口2发送状态,enumUart2TxFree:串口2发送空闲, enumUart2TxBusy,串口2发送正忙
enum Uart2ActName {enumUart2TxFree=0,enumUart2TxBusy,enumUart2TxOK,enumUart2TxFailure};
#endif