说在前面的话
最近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 使能