說在前面的話
最近YKY項目做了新的硬件設計,其中鍵盤接口采用矩陣式鍵盤(4*4),有兩個接口使用了STM32 (PB3、PB4),
調試中發現,這兩個接口對應的兩行均不能正常掃描到按鍵值,查看數據手冊才知道這是系統接口,需要進行設置才可以
作為普通IO口使用。如圖是數據手冊對這兩個接口的介紹:
解決方法
寄存器版本:
1 //JTAG模式設置,用於設置JTAG的模式 2 //mode:jtag,swd模式設置;00,全使能;01,使能SWD;10,全關閉; 3 //#define JTAG_SWD_DISABLE 0X02 4 //#define SWD_ENABLE 0X01 5 //#define JTAG_SWD_ENABLE 0X00 6 void JTAG_Set(u8 mode) 7 { 8 u32 temp; 9 temp=mode; 10 temp<<=25; 11 RCC->APB2ENR|=1<<0; //開啟輔助時鍾 12 AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24] 13 AFIO->MAPR|=temp; //設置jtag模式 14 }
庫版本:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //開啟AFIO時鍾 GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); //改變指定管腳的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //改變指定管腳的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能