stm32f4有重映射么_STM32Fxx JTAG/SWD复用功能重映射
问题描述:
在实验室调车过程中,遇到的一个问题:为了每次下载程序方便,队员们往往会把Jlink插在板子上,可是在调车过程中发现,有时程序会莫名死掉,而同样的程序,把Jlink拔了,却不会出现此问题。且设置PB3,PB4均为输出口,且输出高电平,用万用表测量,PB4为高,PB3不是高电平,在看MDK 中的寄存器值,PB3,PB4都是高啊?寄存器的值怎么和实际的值不一样了?
经过仔细研究找到了症结所在:
查看手册后发现在在复位后JTAG接口的PB3被设置为浮空(如果在该引脚悬空的情况下,读取该端口的电平是不确定的。)了,所以读回来的电平也是不确定的。
STM32 的PA13-PA14-PA15-PB3-PB4-PB5主要是用来JTAG调试用的,于是在默认下是启动后为JTAG模式,项目程序中用到这几个引脚作为了普通I/O口,但却并没有对其进行I/O模式配置初始化。因此对于不需要JTAG,而需要充分利用GPIO口时,就需要将JTAG关闭,设置为GPIO模式。
STM32F103的用法
/*--JTAG-DP禁止,SW-DP允许, PA13, PA14用于调试仿真。PA15, PB3, PB4可用于SPI3--*/
AFIO->MAPR &= 0x00FFFFFF; //
AFIO->MAPR |= 0x02000000;
或
//关闭JTAG,保留SWD
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
工程代码实例:
STM32F407的用法
使用STM32F系列,会遇到将JTAG口复用为SPI1或直接用做普通IO。
针对于F1系列,需要先禁止使能 JTAG,然后将其复用为其他口或者普通IO。
针对F4系列,STM32F4库函数中,已经取消了GPIO_*PinRemapConfig()函数,对于复用功能使用GPIO*_PinAFConfig()函数了!
但是在GPIO_PinAFConfig()函数已经没有禁止JTAG/SW等选项了,而是复用到AF0~AF15线上,其中AF0是系统功能(也是复位初始功能)。STM32F4复位后JTAG对应的管脚的对应的功能就是AF0,(GPIO_AF_MCO=0) 所以这句可以不用:GPIO_PinAFConfig( ,,GPIO_AF_MCO);
直接配置GPIOx_MODER为输出,或输入模式即可,但是注意:STM32F4复位后JTAG对应的管脚的GPIOx_MODER值是0x02,即 复用功能!所以直接配置GPIOx_MODER为所需的模式就可以了!
其中调试接口就是系统功能,这样需要禁用JTAG功能只需把引脚复用到AF1~AF15中的一个就行了。
注:
1.直接复用就可使用相应的复用功能,不用想着失能JTAG了。
2.最好不要 将JTAG复用为普通IO。
3.PB3 PB4将其作为普通IO输出也可以,不过调试下载需要使用SWD下载调试。
4.如果将所有的JTAG口作为GPIO使用,将会导致无法找到JTAG和SW设备,板子下不进去程序。
拓展:
STM32在程序中禁用JTAG功能后会出现不能进行JTAG仿真的现象。
在程序中,通常禁止JTAG的函数如下所示:
//改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全失能(JTAG+SW-DP)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
//改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable JTAG-DP 失能 + SW-DP使能
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
当设置了以上语句后,当运行了这两个语句后,JTAG仿真就与目标失去去联系。
解决办法有:
1、设置启动模式为ISP模式(BOOT0=1、BOOT1=0)或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。
将开发板断电后重新上电,此时就因不是在用户程序模式,因此就不会执行禁用JTAG的语句,JTAG功能也就可以正常使用。
2、设置启动模式为ISP模式(BOOT0=1、BOOT1=0),用ISP程序将STM32的FLASH擦除,之后就可恢复JTAG功能。
3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。直接将仿真器的模式设为SWD模,就可以不受这个禁止JTAG功能的影响了。
参考资料来源:
STM32小问题-复用调试接口JTAG/SWD为普通GPIO
STM32常用管脚重定义外设
STM32f1 中JTAG引脚作为普通IO口设置方法以及STM32f4中的方法的不同
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
stm32f4有重映射么_STM32Fxx JTAG/SWD复用功能重映射相关推荐
- 【STM32】谈谈STM32F10XX的定时器通道复用功能重映射
写这篇的动机是我每次配置定时器硬件PWM的时候都要翻一遍手册,对着目录找内容实在麻烦,干脆写一篇博文直接pick出这一段. 本文参考:正点原子提供的STM32中文参考手册 关键词:STM32 定时器 ...
- STM32---I/O引脚复用以及重映射(GPIO和AFIO)
STM32F4xx官方资料: <STM32F4中文参考手册V10>-第7章I/O 引脚复用器和映射(GPIO和AFIO) I/O 引脚复用器和映射 微控制器 I/O 引脚通过一个复用器连接 ...
- 12_JLink在线调试_软件调试方法和端口复用和重映射
JTAG/SWD调试原理简析 STM32F10xxx使用Cortex-M3内核,该内核内含硬件调试模块,支持复杂的调试操作.硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止.内核停止 ...
- 【STM32】端口复用和重映射,完全重映射,部分重映射
文章目录 端口复用 端口复用函数总结 端口重映射 完全重映射 完全重映射函数总结 部分重映射 端口复用 当 PA9,PA10 引脚作为串口 1 的 TX,RX 引脚使用的时候,那就是端口复用(相较于作 ...
- STM32 端口复用与重映射及低功耗引脚配置
STM32 端口复用与重映射及低功耗引脚配置 什么是复用? 在TSM32里面,大部分的引脚都是有GPIO复用功能,也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内 ...
- 端口复用和重映射--STM32F103
什么是端口复用? STM32中有很多内置外设,这些外设的引脚都是与GPIO复用的,什么时候复用呢?就是当一个GPIO作为内置外设引脚使用时,就叫做复用.比如串口1的发送接收引脚是PA9,PA10,当P ...
- STM32之端口复用与重映射
STM32 --端口复用和重映射 首先来说下什么是端口复用. STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的.也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GP ...
- stm32---端口复用和重映射
什么是端口复用? STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的.也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用. 简 ...
- 端口复用|端口重映射
端口复用:STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的.也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用. 例如:串口 ...
最新文章
- json及JavaBean转json
- 软件工程---08.软件测试
- 服务器启动将字典加载到内存中@PostConstruct
- linux操作系统源码分析,linux操作系统源代码详细分析.doc
- Atitit 大脑能够储存多大的数据量
- 北京54坐标转WGS84坐标
- 2022年江西省研究生数学建模竞赛冰壶运动求解全过程文档及程序
- kali linux win10桌面,一键伪装成Win 10,Kali Linux 2019年最终版重磅功能预览
- 使用Tensorflow Lite在Android上进行AI危害检测
- 利用Retrofit, RxJava获取网络内容
- html5输入框表情,H5页面input输入框含有键盘自带的表情符时显示异常
- System.gc()的理解
- 学习数据库视频笔记4
- gmail发邮件一直失败,解决办法
- 超市收费系统云服务器,云服务器超市
- CryEngine的Modular Behavior Tree简介
- php双月日历代码,PHP输出日历表代码实例
- tvs管参数数解读_浅析TVS管的特性及参数
- linux-xsync
- 学生上课睡觉班主任怎么处理_怎样解决学生上课睡觉的问题
热门文章
- 时钟服务器工作原理,Windows 时间服务的工作原理
- ​吃了假辣椒酱的企鹅,你遇到过哪些被骗的经历?
- CSS2:宽度与高度疑难点解析
- GifCam gif录制软件
- 【“BattenSnakexjp4.1”数据结构课程设计报告】
- 系统报错信息:[0x7FFA30288660] ANOMALY: meaningless REX prefix used
- OpenAI 首个研究成果 生成式模型系列
- 学习日志13:360安全浏览器远程代码执行漏洞
- C语言论坛系统[2023-01-03]
- 经常用的命令一(linux)