STM32之JTAG口作为普通IO使用
IO 作为 STM32 普通 使用
2023-09-11 14:20:36 时间
STM32F10x系列的MCU复位后,PA13/14/15 以及PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些端口设置为普通I/O口。
JTAG对应IO
JTMS --> PA13
JTCK --> PA14
JTDI --> PA15
JTDO --> PB3
JNRST --> PB4
SWD对应IO
SWDIO --> PA13
SWCLK --> PA14
由对应IO关系可以看出,SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST可以接可不接,而剩下的PB4/JNTRST、PB3/JTDO和PA15/JTDI就可以当做普通IO使用,但是这三个口当做普通IO使用时需要先配置。
void GPIOInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 |
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//PB3/4
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);//PA15
}
相关文章
- 使用draw.io桌面版代替visio制作流程图
- java IO之 序列流 集合对象Properties 打印流 流对象
- flask 源码浅析(flask 如何处理请求(多线程,多进程,IO多路复用))
- 如何检测 51单片机IO口的下降沿
- 解决prometheus k8s.gcr.io/addon-resizer:1.8.4镜像无法下载的问题
- Atiitt io的stream流的分类 目录 1. 流的优缺点 高性能但复杂1 1.1. 字节数组更加简单,但性能差点1 2. Io体系1 2.1. 字符流 vs 字节流2 2.2.
- Android 系统服务 io多路复用
- NIO【同步非阻塞io模型】关于 NIO socket 的详细总结【Java客户端+Java服务端 + 业务层】【可以客户端间发消息】
- C#使用System.IO.Path获取文件路径、文件名
- Java他们其中一个IO(一)
- Linux IO工具 iotop备择方案iopp
- IO模型
- redis_03 _ 高性能IO模型:为什么单线程Redis能那么快
- 时序分析及约束实操(VIVADO IDE)——IO时序分析
- java重学系列之IO字节流
- [元来学NVMe协议] NVMe IO 指令集(NVM 指令集)| Flush 命令
- 【Xilinx Vivado时序分析/约束系列6】FPGA开发时序分析/约束-IO时序输入延时
- 【.Net实用方法总结】 整理并总结System.IO中BinaryWriter类及其方法介绍