说在前面的话
最近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 使能
设计资源 培训 开发板 精华推荐
- 根据 EN50121-3-2(双输出)使用带有 EMC 滤波的 RP40-4824SFR DC/DC 转换器的典型应用
- 用于 24V 汽车应用的 LTC4367HMS8 过压电源保护控制器的典型应用
- AM1DM-1215SH60-NZ 15 Vout、1W 单路输出 DC-DC 转换器的典型应用
- 具有基本抑制功能的 LF15ABDT-TR 1.5V 超低压降稳压器的典型应用
- DC782A-Q,LTC2249IUH 演示板,高速 ADC,VDD = +3.0V,80 Msps,14 位 70MHz
- axp173电源模块
- LT1185CQ 低压差稳压器的典型应用电路改善了高频纹波抑制
- 使用 Infineon Technologies AG 的 OM8508SF 的参考设计
- LTC2945IUD 隔离式宽范围 I2C 功率监视器的典型应用
- LT1076、3.3V 至 5V 双路输出 DC/DC 转换器