最近用STM32F103T8做项目,发现PB3和PB4这两个IO不可控,一直是高电平;
原因是PB3和PB4在系统复位时候,分别默认为SYS_JIDO和SYS_HJTRST;
所以需要通过用户自行禁止其功能;
也就是想要正常使用PB3和PB4的主功能的时候。
在初始化IO时候,增加代码如下:(这里使用J-Link的SWD模式烧录程序)
//打开时钟函数
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE); //打开GPIO口时钟,先打开复用才能修改复用功能
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//要先开时钟,再重映射;这句表示关闭jtag,使能swd。
//接下来按照自己需要配置IO的各种模式就行
标准库“stm32f10x_gpio.h”里面的注释是
#define GPIO_Remap_SWJ_NoJTRST ((uint32_t)0x00300100) /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */
#define GPIO_Remap_SWJ_JTAGDisable ((uint32_t)0x00300200) /*!< JTAG-DP Disabled and SW-DP Enabled */
#define GPIO_Remap_SWJ_Disable ((uint32_t)0x00300400) /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */
关键字:STM32 PB3 PB4 正常使用
引用地址:
STM32 PB3或者PB4不能正常使用的讲解
推荐阅读最新更新时间:2024-11-09 10:55
意法半导体STM32全面支持Microsoft Visual Studio Code
现在开发者可以在 VS Code上全面设计、编写和调试 STM32应用 2023年4月26日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;)发布了新的扩展工具,把微软的集成开发环境 Microsoft® Visual Studio Code (VS Code) 的优势引入 STM32 微控制器 。 VS Code 是一个人气颇高的集成开发环境(IDE),以好用和灵活性而享誉业界,例如,IntelliSense可简化并加快代码编辑。 现在开发者能够从 VS Code进入STM32生态系统,让STM32 社区更多的嵌入式开发者能够使用这些功能,还让习
[单片机]
怎样调试STM32硬件错误HardFault
在用 Keil 对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler 函数里的死循环while(1)中。 这说明 STM32 出现了硬件错误。 硬件错误中断 STM32出现硬件错误可能有以下原因: 数组越界操作; 内存溢出,访问越界; 堆栈溢出,程序跑飞; 中断处理错误; 遇到这种情况,可以通过以下2种方式来定位到出错代码段。 方法1: 在硬件中断函数HardFault_Handler里的while(1)处打调试断点,程序执行到断点处时点击STOP停止仿真。 示例 在Keil菜单栏点击View——Registers Window,在寄存器查看窗口查找R14(LR)的值。 如果R14(
[单片机]
008_STM32之_keil编译内存大小解析
Program Size: Code=28784 RO-data=6480 RW-data=60 ZI-data=3900 的含义 1. Code: 程序所占用的FLASH大小,存储在FLASH. 2. RO-data: Read-only-data,程序定义的常量,存储在FLASH中。 3. RW-data:Read-write-data,已经被初始化的变量,存储在SRAM中。 4. ZI-data:Zero-Init-data,未被初始化的变量,存储在SRAM中。 简单的说就是在烧写的时候是FLASH中的被占用的空间为: ROM(Flash) size = Code+RO-data+RW-data; 上面代码大小
[单片机]
想要从STM32小白成为达人,这些知识你必须知道
首先,在学习Cortex-M3时,我们必须要知道必要的缩略语。 整理如下: AMBA:先进单片机总线架构 ADK:AMBA设计套件 AHB:先进高性能总线 AHB-AP:AHB访问端口 APB:先进外设总线 ARM ARM:ARM架构参考手册 ASIC:行业领域专用集成电路 ATB :先进跟踪总线 BE8:字节不变式大端模式 CPI:每条指令的周期数 DAP:调试访问端口 DSP:数字信号处理(器) DWT:数据观察点及跟踪 ETM:嵌入式跟踪宏单元 FPB:闪存地址重载及断点 FSR:fault状态寄存器 HTM:Core Sight AHB跟踪宏单元 ICE:在线仿真器 IDE:集成开发环境 IRQ:中断请求(通常是
[单片机]
STM32基础12--数模转换(DAC)
前言 在做51单片机项目时,如果需要对外围电路的压输出,往往会在51单片机上面外挂一个DAC转换芯片(例如DAC0808)。但在STM32F407中,不再需要这么干了,因为在STM32的内部就已经集成了DAC电路。 STM32中,DAC 模块是 12 位电压输出数模转换器。DAC 可以按 8 位或 12 位模式进行配置,并且可与 DMA 控制器配合使用。在 12 位模式下,数据可以采用左对齐或右对齐。DAC 有两个输出 通道,每个通道各有一个转换器。在 DAC 双通道模式下,每个通道可以单独进行转换;当 两个通道组合在一起同步执行更新操作时,也可以同时进行转换。可通过一个输入参考电压 引脚 VREF+ (与
[单片机]
基于STM32的实收实发超声波检测系统研究
1、引言 在高频的超声波数据采集及频率分析的应用中,通常会采用实收实发的系统来模拟收到信号,目前最经常采用的模式是使用下位机高速连续采样,上位机进行数据分析的模式,然后在将检测的信号通过D/A发送出去。这种模式可以完成M级甚至于G级的数据连续采样,目前已经在高速的工业信号采集中得到了广泛的应用。 提出基于STM32的实收实发系统,主控芯片采用目前最新的STM32F407芯片,属于ARM公司推出的最新一代低功耗高性能片上系统,内核为CORTexM4,最高主频可以到168MHz,内部采用ARM的精简指令集,单周期指令,并且集成了ARM公司的浮点DSP指令集,可以对数据进行信号滤波以及FFT运算,计算能力超过TI的200M主频的DS
[单片机]
STM32学习日志——DAC实验
一、DAC简介 今天学习的是DAC,即数模转换,大容量的STM32F103具有内部DAC模块,STM32F103ZET6属于大容量芯片,具有2个DAC,每个DAC对应一个输出通道,可以设置为8位或12位,选择12位模式时,数据存储可设置为左对齐或右对齐,双DAC通道可以独立转换,也可以同步转换。数据data与输出电压的关系为 V=data*3.3/4096; VDDA和VSSA为DAC模块的供电,Vref+为参考电压。通道1为PA4,通道2为PA5;本次的实验是,通过按键给DAC模块一个值,然后将PA4与PA1(ADC通道1)连接起来,就可以通过读取ADC1的通道1的电压来确定PA4的输出电压。 二、配置库函数 1)开启PA口时钟
[单片机]
STM32 驱动例程
1、IO输出 led.c #include #include led.h //初始输出口.并使能这两个口的时钟 //LED IO初始化 void LED_Init(void) { RCC- APB2ENR|=1 2; //使能PORTA时钟 RCC- APB2ENR|=1 3; //使能PORTB时钟 GPIOA- CRL|=0X00000300;//PA2 推挽输出 GPIOA- ODR|=1 2; //PA2 输出高 GPIOA- CRL|=0X00003000;//PA3 推挽输出 GPIOA- ODR|=1 3; //PA3 输出高 GPIOB-
[单片机]