48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
#ifndef _MODBUS_485_H_
|
||
#define _MODBUS_485_H_
|
||
|
||
#include "apps_gather.h"
|
||
|
||
typedef enum
|
||
{
|
||
TRANSPARENT_WAIT = 0,
|
||
TRANSPARENT_RECIEVE_START,
|
||
TRANSPARENT_RECIEVE_FINISHED,
|
||
TRANSPARENT_TRANSMIT_END
|
||
}TRANS_PROCESS;
|
||
|
||
extern uint32_t tick_start;
|
||
extern uint32_t tick_middle;
|
||
extern uint32_t tick_end;
|
||
//extern uint32_t trans_log_rx;
|
||
extern uint32_t trans_log_tx;
|
||
extern uint8_t sig2slave_step;
|
||
extern TRANS_PROCESS st_flag;
|
||
|
||
void parse_scom_485(st_scom *scom);
|
||
|
||
//透传,DMA发送,与发送回调组合使用
|
||
void transparent_tim(void);
|
||
|
||
void trans_hart2pc(void);
|
||
|
||
void trans_pc2hart(void);
|
||
|
||
void trans_ble2pc(void);
|
||
|
||
void trans_pc2ble(void);
|
||
|
||
void trans_modbus_pc2sig(void);
|
||
|
||
//SIG作为主设备,向外发送数据之后,等待从机应答,持续一段时间(超时时间)无数据后停止接收,并对收到的数据进行解析
|
||
void trans_modbus_sig2slave(void);
|
||
|
||
//DMA接收只有半满中断、空闲中断和完成(溢出)中断,因此用以下函数尝试进行捕获
|
||
//该函数放置于TIM2的中断内,1ms为周期,尝试捕获前3帧
|
||
void trans_start_capture(void);
|
||
|
||
uint8_t trans_enable_check(st_scom *scom);
|
||
|
||
|
||
#endif
|