IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> GPIO使用(二)如何将调试接口配置成普通IO口及JTAG和SWD禁用解除 -> 正文阅读

[嵌入式]GPIO使用(二)如何将调试接口配置成普通IO口及JTAG和SWD禁用解除

关于GPIO的复用

STM32F10x系列及AT32F4xx的MCU复位后,PA13/14/15/ PB3/PB4默认配置为JTAG功能。那么为了充分利用芯片的I/O口资源,就会把这些端口设置为通用I/O口,意味着将这些引脚复用为普通I/O功能。以AT32F4xx系列为例。
在数据手册有以下介绍:
在这里插入图片描述

在用户手册里复用功能I/O章节和调试设置章节有关复用说明:
在这里插入图片描述
在这里插入图片描述

根据以上手册内容可知:
1、默认JTAG调试功能,那么PA13/PA14/PA15 /PB3/PB4都不能做普通I/O口使用;
2、关闭JTAG-DP且同时关闭SW-DP,则PA13/PA14/PA15/PB3/PB4窦可做普通I/O口使用。

一、根据所要配置成普通I/O口选择关闭JTAG-DP or SW-DP。

以PB3为例:可以选择SWJTAG_GRMP[2: 0]位 的010和100,优先选择关闭少的,即选择010所对应的(AFIO_MAP)的设置。尽量不要关闭SW-DP,关闭SW-DP就不能使用SWD下载(无法使用J-LINK调试),给调试带来不便。
将PB3作为普通I/O的设置包括以下步骤:
1、时钟配置:添加 RCC_APB2Periph_AFIO

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);

2、添加调试I/O配置寄存器AFIO_MAP

GPIO_PinsRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);  //AFIO_MAP的SWJTAG_GRMP[2: 0]位 为010(优先)GPIO_PinsRemapConfig(GPIO_Remap_SWJ_ALLDisable, ENABLE);  //AFIO_MAP的SWJTAG_GRMP[2: 0]位 为100

//一般在库文件的xx_gpio.h中会有关于AFIO_MAP_define

3、其他代码就是普通引脚配置了;(选择芯片不同,配置GPOI也会有些差异)
在这里插入图片描述

4、配置好后,若此IO口控制输出就用万用表测量输出器件状态;也可直接测量MCU引脚PB3的对地电压变化,在0V/3.3V切换。

若是STM的请参考:
在这里插入图片描述

二、若同时禁止JTAG-DP和SW-DP,怎么使用SWD下载?

1、若你使用的仿真器支持SWD仿真模式,就不受这个禁止JTAG功能的影响。但受SW-DP影响。在重新上电的之前,保证BOOT0为高电平,BOOT1为低电平(可将BOOT0引脚直接和高电平相连),此时禁止程序从烧写过的代码启动,重新烧写程序即可。

2、若使用JTAG-DP,则
设置启动模式为ISP模式(BOOT0=1、BOOT1=0),用ISP程序将FLASH擦除,之后恢复JTAG功能。
或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。将开发板断电后重新上电,此时就因不是在用户程序模式,所以不会执行禁用JTAG的语句,JTAG-DP可用。

三、扩展:启动模式

三种启动模式对应的存储介质均是芯片内置。控制启动模式的管脚BOOT0和BOOT1,它们在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。

1) BOOT0=0 BOOT1=x从用户闪存启动,为正常的工作模式,用户闪存=芯片内置的Flash。

2)BOOT0=1 BOOT1=1从内置SRAM启动,SRAM掉电后数据就丢失,这种模式可用于调试。SRAM=芯片内置的RAM区,即内存。

3)BOOT0=1 BOOT1=0 从系统存储器启动,这种模式启动的程序功能由厂家设置;系统存储器=芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROROMM区。

参考文章:
STM32芯片的PB3 PB4 PA15引脚如何用作普通端口
程序禁用swd-jtag功能,如何用swd下载

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:11:47  更:2021-12-03 13:14:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:29:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码