STM32JTAG口用作普通IO的配置
使用Jlink向STM32烧录程序时,需要使用6个芯片的引脚(以STM32F103C8T6为例),分别是PB4/JNTRST、PB3/JTDO、PA13/JTMS、PA14/JTCK、PA15/JTDI、NRST。标准的20针JLink接口如下图所示。
当芯片IO口资源比较紧张时,可选择SW模式烧录程序。SWD只需用到PA13/JTMS、PA14/JTCK两根线,NREST可以接可不接,而剩下的PB4/JNTRST、PB3/JTDO和PA15/JTDI就可以当做普通IO使用。但是这三个口当做普通IO使用时需要先配置。配置方法:
void GPIOInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
/* Disable JLink, enable SW */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA " RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/* Push-pill output, it can be other output types */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
/* Push-pill output, it can be other output types */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
GPIO_Remap_SWJ_JTAGDisable已在“stm32f10x_gpio.h”文件中进行了宏定义:
#define GPIO_Remap_SWJ_JTAGDisable ((uint32_t)0x00300200)
/*!< JTAG-DP Disabled and SW-DP Enabled */
注意!!!这三个引脚默认的是JLink的复用功能,如果程序中还有其他GPIO口的配置,那这三个引脚的GPIO初始化一定要放在其他所有GPIO配置之后,否则依然无法作为普通IO使用。
如果非要把这三个引脚的配置放在其他GPIO配置之前,那么在程序中每次使用这些引脚前,需要再添加一句 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 例如:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
GPIO_ResetBits(GPIOB, GPIO_Pin_4); // PB4 is set to 0;
STM32JTAG口用作普通IO的配置的更多相关文章
- 14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率:
14.6.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB 主线程IO 速率: 主线程 在InnoDB 是一个线程 执行各种任务在后台. ...
- 14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量
14.6.7 Configuring the Number of Background InnoDB IO Threads 配置InnoDB IO Threads的数量 InnoDB 使用后台线程来服 ...
- 14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate
14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate 主的master thread ...
- 14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量 InnoDB 使用bac ...
- 迅为iTOP-4418/6818开发板-驱动-IO初始化配置介绍和例程
对于所有的处理器,pad 一般可以分为两大类:IO(输入输出).Power(VDD 和GDD).类似摄像头 IO.以太网 IO.PWM 的 IO 等等,都可以统称为 IO.一个 IO,有可能能够被配置 ...
- IO 相关配置参数
INNODB I/O相关配置 记录日志为顺序I/O,刷新日志到数据文件为随机操作.顺序操作性能快于随机IO. innodb_log_file_size innodb_log_files_in_grou ...
- kafka-node+socket.io 测试配置
1.安装需要插件 npm install express npm install socket.io npm install kafka-node 2.kafkatest.js文件 var exp ...
- io.h配置 ubuntu
https://www.cnblogs.com/liuyangak/articles/3239238.html https://blog.csdn.net/jiao_mrswang/article/d ...
- STM32F030如何正确配置IO口的复用功能
本文所使用的单片机型号为STM32F030C8T6. 在030系列的单片机中,PA2引脚除了作为普通的IO引脚用作输入输出功能以外,还可以作为内部外设串口1,串口2,定时器15通道1这三个外设的功能引 ...
随机推荐
- .net 面向对象程序设计深入](3)UML
1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作. 业务用例由一系列活动组成,它们共同为业务主角生成某些工件. 工作流 ...
- ssh免密码登陆失败的原因
今天因为需要在两台服务器上进行ssh免登陆,所以安装网上的教程,ssh-keygen -t rsa,然后把相互的密钥加入到对方的authorized_keys. 问题是我们虽然这样做了,却一直要密码, ...
- 【Z】扩展阿里巴巴Java开发规约插件
https://blog.csdn.net/u014513883/article/details/79186893 1.前言 工作中难免会遇到维护别人代码的情况,那么首先就得看懂别人写的代码.如果对方 ...
- June 30th 2017 Week 26th Friday
Love me little and love me long. 不求情意浓,但愿情意久. Some people say beautiful young people are the creatur ...
- web性能权威指南(High Performance Browser Networking)
web性能权威指南(High Performance Browser Networking) https://www.cnblogs.com/qcloud1001/p/9663524.html HTT ...
- 使用ViewPager和FragmentPagerAdapter实现Tab
前面我们分别利用ViewPager和Fragment实现了Tab效果.但是使用Fragment实现的Tab不能够左右滑动.如果我们既想使用Fragment又想让Tab能够滑动,那么怎么办呢?这 就是今 ...
- UVa 1636 - Headshot(概率)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 2018.09.23模拟总结(T2)
T1,T3我就不说啦,反正也不会.主要想讲的是T2. T2用了一个神奇的算法:折半搜索. 因为这个坑爹的数据范围告诉我们暴搜或是状压会TLE,而一半刚好能卡过去. 折半搜索其实跟暴搜没什么区别,就是折 ...
- Kali-linux目录加密
在Kali中提供了一个目录加密工具TrueCrypt.该工具是一款开源的绿色加密卷加密软件,不需要生成任何文件即可在硬盘上建立虚拟磁盘.用户可以按照盘符进行访问,所以虚拟磁盘上的文件都被自动加密,访问 ...
- ICompare 可比较接口
执行