/* * user.h * * Created on: 2023年10月27日 * Author: wyf */ #ifndef USER_INC_USER_H_ #define USER_INC_USER_H_ #include "main.h" #include "string.h" #include "user_stick.h" #include "user_key.h" //#include "user_iic.h" #include "user_oled.h" //#include "user_oledfont.h" #define ENABLE_INT() __set_PRIMASK(0) /* 使能全局中断 */ #define DISABLE_INT() __set_PRIMASK(1) /* 禁止全局中断 */ #define PWR_ON() HAL_GPIO_WritePin(PWR_EN_GPIO_Port, PWR_EN_Pin, GPIO_PIN_SET) #define PWR_OFF() HAL_GPIO_WritePin(PWR_EN_GPIO_Port, PWR_EN_Pin, GPIO_PIN_RESET) #define RLED_ON() HAL_GPIO_WritePin(RLED_GPIO_Port, RLED_Pin, GPIO_PIN_RESET); #define RLED_OFF() HAL_GPIO_WritePin(RLED_GPIO_Port, RLED_Pin, GPIO_PIN_SET); #define BLED_ON() HAL_GPIO_WritePin(BLED_GPIO_Port, BLED_Pin, GPIO_PIN_RESET); #define BLED_OFF() HAL_GPIO_WritePin(BLED_GPIO_Port, BLED_Pin, GPIO_PIN_SET); #define BELL_ON() HAL_TIM_PWM_Start_IT(&htim17, TIM_CHANNEL_1); #define BELL_OFF() HAL_TIM_PWM_Stop_IT(&htim17, TIM_CHANNEL_1); #define UART_BUFF_LEN 64 extern uint8_t uart1_count ; //串口1接收数据个数 extern uint8_t uart1_RxBuff[UART_BUFF_LEN] ; //串口1接收缓冲区 extern uint8_t uart1_TXBuff[UART_BUFF_LEN] ; //串口1发送缓冲区 extern uint8_t uart1_uBuff[UART_BUFF_LEN] ; //串口1用户缓冲区 extern uint8_t current_addr ; //要修改的地址 extern uint8_t last_send ; //上一次修改的值 extern uint16_t RegularConvData_Tab[10]; extern DMA_HandleTypeDef hdma_usart1_rx; extern DMA_HandleTypeDef hdma_usart1_tx; extern UART_HandleTypeDef huart1; extern TIM_HandleTypeDef htim17; extern ADC_HandleTypeDef hadc1; typedef struct bell_sta { uint8_t num; //次数 uint16_t continue_time; //持续时间 uint16_t interval_tine; //间隔时间 }BELL_STATE; extern BELL_STATE bell_state; void user_main(void); void user_init(void); void bsp_RunPer10ms(void); void oled_show(void); uint16_t crc16_modbus(uint8_t *data, uint16_t length); void send_addr(uint8_t addr); void key_slave(void); void uart_slave(void); void oled_voltage(uint8_t voltage_class); #endif /* USER_INC_USER_H_ */