41 lines
850 B
C
41 lines
850 B
C
#include "tm1650.h"
|
|
|
|
uint8_t key;
|
|
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);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
|
|
{
|
|
if (GPIO_Pin == TM1650_KP_Pin)
|
|
{
|
|
kp_flag = TRUE;
|
|
}
|
|
}
|