之所以出現(xiàn)這個(gè)的原因就是key只定義到uint8,所以只能響應(yīng)8個(gè)按鍵。你得將他修改為uint16,主要修改的點(diǎn)
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;? ? ?/* 保留按鍵最后的狀態(tài),用于查詢是否有鍵值變化 */
static uint16 KeyConfigFlag;? ? /* 按鍵是否配置標(biāo)志位 */
第二處
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 )