/* * @Author: wujunchao wujunchao@wuxismart.com * @Date: 2024-12-24 13:24:59 * @LastEditors: wujunchao wujunchao@wuxismart.com * @LastEditTime: 2025-03-17 11:31:24 * @FilePath: \signal_generator\App\TM1650\tm1650.c * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ #include "tm1650.h" uint8_t key = 0; BOOL kp_flag = FALSE; void tm1650_init(I2C_HandleTypeDef *hi2c) { if (!hi2c) return; uint8_t reg = 0; reg = PARAMETER_SEGMENT_MODE_SEVEN | PARAMETER_WORK_MODE_RUNNING | PARAMETER_DISPLAY_MODE_ON; HAL_I2C_Master_Transmit(hi2c, COMMAND_SET_PARAMETER, ®, 1, 0xff); // 发送设置参数命令 } void tm1650_read_key(I2C_HandleTypeDef *hi2c, BOOL *kp_flag, uint16_t cmd, uint8_t *key) { if (!hi2c || !cmd || !key) return; #ifdef SCAN_MODE tm1650_init(&hi2c1); HAL_I2C_Master_Receive(hi2c, cmd, key, 1, 0xff); #else if (*kp_flag == TRUE) { *kp_flag = FALSE; HAL_I2C_Master_Receive(hi2c, cmd, key, 1, 0xff); //数据转换 key_char2struct(); } #endif } void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin == KEY_KP_Pin) { kp_flag = TRUE; } }