之所以出现这个的原因就是key只定义到uint8,所以只能响应8个按键。你得将他修改为uint16,主要修改的点
key.h文件
第一处
typedef void (*halKeyCBack_t) (uint16 keys, uint8 state);
第二处
typedef struct
{
tmos_event_hdr_t hdr;
uint8 state; // shift
uint16 keys; // keys
} keyChange_t;
第三处
void HalKeyCallback ( uint16 keys, uint8 state );
key.c
第一处
static uint16 halKeySavedKeys; /* 保留按键最后的状态,用于查询是否有键值变化 */
static uint16 KeyConfigFlag; /* 按键是否配置标志位 */
第二处
uint8 OnBoard_SendKeys( uint16 keys, uint8 state )
第三处
void HalKeyCallback ( uint16 keys, uint8 state )
第四处
uint8 HalKeyRead ( void )
{
uint16 keys = 0;
第五处
void HAL_KeyPoll (void)
{
uint16 keys = 0;
第六处
然后再是你的主程序逻辑文件
第一处
static void Peripheral_HandleKeys( uint8 shift, uint16 keys );
第二处
static void Peripheral_HandleKeys( uint8 shift, uint16 keys )