#ifndef __CJT188_H #define __CJT188_H #include "stm32f2xx.h" #include "stdint.h" #include "usart.h" #include "stdbool.h" #define _CJT_RXSIZE 64 #define _CTJ_CTRL_GPIO USART_485_DE_GPIO_PORT #define _CTJ_CTRL_PIN USART_485_DE_PIN typedef struct { uint16_t rxIndex; uint8_t rxBuf[_CJT_RXSIZE]; uint32_t rxTime; uint8_t txBusy; uint32_t timeout; uint8_t done; }CTJBus_t; #define gettick( ) ( xTaskGetTickCount() ) // 初始化 bool cjt_init(uint32_t timeout); // 回调函数 void cjt_callback(UART_HandleTypeDef *husart); // 接收函数 uint16_t cjt_receiveRaw(uint32_t timeout); // 发送函数 bool cjt_sendRaw(uint8_t *data, uint16_t size, uint32_t timeout); // 读取数据 bool cjt_read_meter_data(uint8_t* slaveAddress, double* data, uint8_t protocol); // 读取地址 bool cjt_read_addr(uint8_t *data); // 设置地址 bool cjt_set_addr(uint8_t *addr); double data_translate_to_float(uint8_t* msg); #endif