STM32之JTAG、SWD模式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32之JTAG、SWD模式
说在前⾯的话
最近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
6void 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 使能。