STM32 的PA13-PA14-PA15-PB3-PB4-PB5主要是用来JTAG调试用的,于是在默认下是启动后为JTAG模式,但是对于不需要JTAG而需要充分利用GPIO口时,就需要将JTAG关闭,设置为GPIO模式。
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //打开PA时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //打开PB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //打开复用时钟----重要
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); //禁止所有SWJ----重要
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
然后就可以直接当成GPIO口使用---高低电平设置---
GPIO_SetBits(GPIOA,GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15);
GPIO_ResetBits(GPIOB,GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5);
关键字:STM32 关闭JTAG GPIO口
引用地址:
STM32 关闭JTAG 使用相应GPIO口 简单记录
推荐阅读最新更新时间:2024-03-16 15:47
IAR首次给单片机STM32下载解锁flash
新板子焊接好后,在编译下载的时候第一次遇到了这样的问题: Warning:STack pointer issetupto incorrect alignment. Stack addr = 0xAAAAAAAA 开始以为是调试器的问题,我用的Jlink的SWD接口模式,换了STLink还是这个毛病,后来提示需要板子初始化,试了无果,后来查看IAR的帮助文档发现是Flash被保护了,以下摘自Help文档: 按照说明,在IAR安装目录下找到指定的运行程序JLinkSTM32.exe(D:Program Files (x86)IAR SystemsEmbedded Workbench 6.0armbin)在JLink与
[单片机]
学习笔记之 STM32单片机
1、 AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2 1,意思是APB2接高速设备 2、 Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用 3、 HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz 4、 LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed Intern
[单片机]
STM32 f103 实现命令终端
文件说明 uart.c 实现输入反显及命令识别 cmd.c 实现命令函数及命令查找 main.c 进入shell模式 uart.c #include usart.h /**************************************************************************** * 名 称:void USART1_Configuration(void) * 功 能:配置USART1参数 * 入口参数: * 出口参数:无 * 说 明: * 调用方法:无 ************************************************
[单片机]
单片机STM32学习笔记之寄存器映射详解
我们知道,存储器本身没有地址,给存储器分配地址的过程叫存储器映射,那什么叫寄存器映射?寄存器到底是什么? 在存储器Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过C 语言指针的操作方式来访问这些单元,如果每次都是通过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。 比如,我们找到GPIOB 端口的输出数据
[单片机]
STM32读取温湿度传感器DHT11和DHT21(AM2301)系列问题
1、DHT11和DHT21传感器 这两种传感器都是奥松公司的产品,具体的传感器说明书在其官网上有(www.aosong.com)。 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数 字模块采集技术和温湿度传感技术,确保产品具有枀高的可靠性与卓越的长期稳定性。传感器包括一 个电容式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。 DHT21(AM2301)湿敏电容数字温湿度模块是一款含有己校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式感湿元件和一个
[单片机]
关于STM32配置中断和GPIO针脚问题
STM32是用的什么开发环境? STM32系列单片机,这款单片机功能强大,而且很容易学习,官方示例代码很多,稍加修改就可以开发自己的东西了。 嵌入式软体搭配最新版的STM32CubeMX个人电 脑开发 工具使用, 设计人员 可在绘图介面向导内配置微控制器,只要按一下,即可生成初始化C代码,直接用於多款市面上流行的 第三方开发 工具。 STM32Nucleo 开发板可让开发人员连接微控制器的全部I/O介面,并整合了ST-Link侦错器(debugger)/程式设计(programmer),无需单独安装侦错器。最後, STM32Nucleo 开发板拥有mbedTM功能,这表示该开发板可与个人电脑直接连结,并直接在mbed
[单片机]
基于STM32的交流永磁同步电机驱动器设计
引言 近年来,随着微电子技术、电力电子技术、现代控制技术、材料技术的迅速发展以及电机制造工艺水平的逐步提高,交流永磁同步电机以其体积小、结构简单等特点在工农业、日常生活以及许多高科技中迅速得到了广泛的应用。因此,研究设计高精度、高性能的永磁同步电机成为现代电伺服驱动系统的一个发展趋势。 伺服驱动器按照功能特征可分为功率板和控制板两个独立的模块,本文在分析交流永磁同步电机控制性能的基础上分别对控制单元和功率驱动单元进行了具体的设计。控制单元作为伺服系统的核心,要求有较高的性能,为此,论文采用意法半导体推出的STM32作为控制核心芯片。它是基于ARM先进架构的Cortex-M3为内核的32位微处理器,主频可高达72 MHz。强大
[单片机]
基于STM32从零写操作系统系列---使用官方固件库
目的内容 使用官方固件库的好处就是方便,看着说明文档就可以使用。但是,从编译后的.bin文件大小看,一样的点亮LED灯,使用固件库产生的.bin文件大小差不多有6K,而上一章的串口+LED程序编译后的.bin文件就只有2K多。对于stm32F103zet6而言,flash大小512K,如果想要在这么点空间装个”有点意思”的操作系统,就需要尽量减少.bin文件的大小了。在实现的功能相同的情况下,用最少的指令数量显然更合理。在使用固件库时,编译的一些文件中,有部分函数功能是没有用到的,但他们也被链接到.bin文件中了。所以最终生成的.bin文件就比较大了。 还有一个问题就是,固件库用起来方便,但是想要完全掌握你的程序的来龙去脉,你
[单片机]