PB3引脚是无法以普通GPIO形式来控制的。
原因:是因为有特殊的功能。首先,我们可以看一下 STM32 F103C8T6的引脚分布图
从上面的表格可以看出 PB3 是JTDO 的接口
如和将PB3设置成为普通的GPIO口呢?
可以进行如下设置
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
需要开启APB2总线上的 AFIO 和 GPIOB 时钟。
第二行代码的作用是:关闭JTAG调试开启SWD调试。
如果你使用的ST-Link V2 调试器的话。此时就需要配置GPIO时,就配置关闭JTAG 开启 SWD调试。如果你将
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
这句话放置在主函数里。有时候会出错,SWD无法下载程序
附上STM32F103系列引脚图
关键字:STM32 PB3引脚
引用地址:
关于使用STM32- PB3引脚的一些问题
推荐阅读最新更新时间:2024-03-16 16:13
STM32串口接收字符串并控制LED
串口相关配置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
[单片机]
STM32中flash的读写详解
一:对STM32内部FLASH写进行编程操作,需要遵循以下流程: 1.FLASH解锁 2.清除相关标志位 3.擦除FLASH(先擦除后写入的原因是为了工业上制作方便,即物理实现方便) 4.写入FLASH 5.锁定FLASH (1)获取状态:FLASH_Status FLASH_GetStatus(void); 返回值是通过枚举类型定义的。 typedef enum { FLASH_BUSY = 1, //忙 FLASH_ERROR_PG, //编程错误 FLASH_ERROR_WRP, //写保护错误 FLASH_COMPLETE, //操作完成 FLASH_TIMEOUT /
[单片机]
STM32 嵌入式学习入门(0)——C语言基础复习
摘要 主要介绍了嵌入式编程中几个常用,但软件编程中用得不是很多的C语言知识。包括位操作、条件编译、结构体和结构体指针、typedef声明类型、以及extern变量声明、static关键字等内容。 本文并没有将相关C语言知识点介绍地很详细,毕竟这么多知识点要想掌握绝对不是看几篇文档就能掌握的。因此博主建议,如果上述的C语言知识掌握得还不是很好的话,找一本C语言的书好好研究研究。尤其是结构体和结构体指针、还有函数的知识(本文没提到),一定要很熟练。 本文除了简要介绍C语言知识,也结合博主自己的感受简单谈了各个知识点用在了嵌入式编程的什么地方,有不详细和描述不准确的地方欢迎大家留言讨论。 要想学习STM32
[单片机]
STM32——GPIO的CRL、CRH和CNF与MODE的关系
GPIO的CRL、CRH和CNF与MODE的关系 STM32的CRL控制着每个IO端口的位占用CRL的4个位,高两位为CNF,低两位为MODE。 CRH的作用和CRL完全一样,只是CRL控制的是低8位输出口,而CRH控制的是高8位输出口。
[单片机]
STM32_IAP详解(有代码,有上位机)
Iap,全名为in applacation programming,即在应用编程,与之相对应的叫做isp,in system programming,在系统编程,两者的不同是isp需要依靠烧写器在单片机复位离线的情况下编程,需要人工的干预,而iap则是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。在工程应用中经常会出现我们的产品被安装在某个特定的机械结构中,更新程序的时候拆机很不方便,使用iap技术能很好地降低工作量. 实现iap有两个很重要的前提,首先,单片机程序能对自身的内部flash进行擦写,第二,单片机要有能够和外部
[单片机]
STM32串口通信实验-库函数
这里先给出程序源码: 调用库函数: #include sys.h #include usart.h #include led.h #include delay.h int main() { u8 i; u8 len; u32 times = 0; //中断分组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //初始化延时函数 delay_init(84); //初始化串口 uart_init(115200); //初始化led LED_Init(); //循环 LED0 = 0; while (1) { //检验接受标志 //若接
[单片机]
STM32学习——LCD的使用
LCD简介 原理: LCD即液晶显示器,给液晶施加电场,会改变它的分子排列,从而改变光线传播方向,配合偏振光片,它就具有控制光线透过率的作用,再配合彩色滤光片,就能改变某一颜色透光量的多少。做出可控红、绿、蓝光输出强度的显示结构,组成一个显示单位,通过控制红绿蓝的强度,可以使该单位混合输出不同的色彩,这样的一个显示单位被称为像素。(需要背光源) 硬件结构: 液晶显示面板+电容触摸面板+PCB底板(带液晶控制器芯片) MINI板上的液晶控制器为ILI9341,主机通过8080接口与其进行连接,从而控制液晶的显示 程序细节 初始化: 1.初始化各个管脚,打开背光灯,模拟8080时序 2.记得禁止JTAG功能 3.初始化配置
[单片机]
STM32单片机中断详解
中断,在单片机中占有非常重要的地位。代码默认地从上向下执行,遇到条件或者其他语句,会按照指定的地方跳转。而在单片机执行代码的过程中,难免会有一些突发的情况需要处理,这样就会打断当前的代码,待处理完突发情况之后,程序会回到被打断的地方继续执行。 1 EXTI控制器 外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 外部信号进入经过1的边沿检测电路,检测是否符合(有2和3的上升沿和下降沿选择寄存器决定),产生信号,然后和4软件
[单片机]