sggt/App/TM1650/tm1650.c

50 lines
1.2 KiB
C

/*
* @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, &reg, 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);
}
#endif
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin == KEY_KP_Pin)
{
kp_flag = TRUE;
}
}