STM32之JTAG、SWD模式

说在前面的话

  最近YKY项目做了新的硬件设计,其中键盘接口采用矩阵式键盘(4*4),有两个接口使用了STM32 (PB3、PB4),

调试中发现,这两个接口对应的两行均不能正常扫描到按键值,查看数据手册才知道这是系统接口,需要进行设置才可以

作为普通IO口使用。如图是数据手册对这两个接口的介绍:

STM32之JTAG、SWD模式

解决方法

寄存器版本:

 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 使能

  

上一篇:有没有办法在macbook pro上交换linux中的fn(函数)和控制键?


下一篇:Remap 后的 USART1 不能发送数据