STM32单片机释放PB3/PB4/PA15作为普通IO口

发布者:采菊东篱下最新更新时间:2018-09-09 来源: eefocus关键字:STM32  单片机  普通IO口 手机看文章 扫描二维码
随时随地手机看文章

  一次使用STM32F103RCT6单片机用到多个IO口时发现:不管如何配置,PB3,PB4,PA15无法正常控制输出高低电平,而其他IO口正常。其IO口初始化操作如下:


    GPIO_InitTypeDef GPIO_Initure;


    __HAL_RCC_GPIOA_CLK_ENABLE();               //开启GPIOA时钟

    __HAL_RCC_GPIOB_CLK_ENABLE();               //开启GPIOB时钟


    GPIO_Initure.Pin=GPIO_PIN_15;

    GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;      //推挽输出

    GPIO_Initure.Pull=GPIO_PULLUP;              //上拉

    GPIO_Initure.Speed=GPIO_SPEED_HIGH;         //高速

    HAL_GPIO_Init(GPIOA,&GPIO_Initure);


    GPIO_Initure.Pin=GPIO_PIN_3|GPIO_PIN_4;

    HAL_GPIO_Init(GPIOB,&GPIO_Initure);


  查找相关芯片资料发现,包括这三个引脚在内的PB3,PB4,PA13,PA14,PA15是特殊的IO口,默认用作JTAG/SWD仿真器的调试接口。其中PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,PB4,PA13,PA14,PA15共同用于JTAG。 

这里写图片描述 


这里写图片描述 


  如需使用这些IO口需要禁止相关JTAG/SWD功能。查看HAL库文件,可找到相关函数。

/**

  * @brief Enable the Serial wire JTAG configuration

  * @note  ENABLE: Full SWJ (JTAG-DP + SW-DP): Reset State

  * @retval None

  */

#define __HAL_AFIO_REMAP_SWJ_ENABLE()   MODIFY_REG(AFIO->MAPR, AFIO_MAPR_SWJ_CFG, AFIO_MAPR_SWJ_CFG_RESET)


/**

  * @brief Enable the Serial wire JTAG configuration

  * @note  NONJTRST: Full SWJ (JTAG-DP + SW-DP) but without NJTRST

  * @retval None

  */

#define __HAL_AFIO_REMAP_SWJ_NONJTRST() MODIFY_REG(AFIO->MAPR, AFIO_MAPR_SWJ_CFG, AFIO_MAPR_SWJ_CFG_NOJNTRST)


/**

  * @brief Enable the Serial wire JTAG configuration

  * @note  NOJTAG: JTAG-DP Disabled and SW-DP Enabled

  * @retval None

  */

#define __HAL_AFIO_REMAP_SWJ_NOJTAG()   MODIFY_REG(AFIO->MAPR, AFIO_MAPR_SWJ_CFG, AFIO_MAPR_SWJ_CFG_JTAGDISABLE)


/**

  * @brief Disable the Serial wire JTAG configuration

  * @note  DISABLE: JTAG-DP Disabled and SW-DP Disabled

  * @retval None

  */

#define __HAL_AFIO_REMAP_SWJ_DISABLE()  MODIFY_REG(AFIO->MAPR, AFIO_MAPR_SWJ_CFG, AFIO_MAPR_SWJ_CFG_DISABLE)



  在初始化IO操作的最后添加语句:


__HAL_AFIO_REMAP_SWJ_NOJTAG();


  即可禁止JTAG调试功能,将PB3,PB4,PA15用作普通IO口,而保留PA13,PA14的SWD接口,使单片机仍可下载程序与调试。


关键字:STM32  单片机  普通IO口 引用地址:STM32单片机释放PB3/PB4/PA15作为普通IO口

上一篇:PB3,PB4,PA13,PA14,PA15用作普通IO口的特殊配置
下一篇:STM32 PB4不能做普通IO解决方法

推荐阅读最新更新时间:2024-03-16 16:13

异种单片机共享片外存储器及其与微机通信的方法
    摘要: 介绍了通用单片机(MCU)AT89C51与信号处理单片机(DSP)TMS320C32通过共享片外随机存储器实现板间通信的方法,并给出了总线隔离硬件电路与软件控制流程。文中还简要分析了AT89C51与微生机盎然进行串行通信的软硬件设计,通过扩展AT89C51间接实现了TMS320C32与通用单片机或微机之间的通信。     关键词: 单片机  DSP  数字信号处理器  共享存储器  串口通信 TMS320系列数据信号处理单片机(DSP)在测控、仪器仪表、图象处理、计算机视觉与声信号处理等领域得到了越来越广泛的应用。DSP获取原始采集数据和输出处理结果一般有两种途径:一是通过串行口,另一是通过数据
[工业控制]
基于单片机的HT1621液晶显示系统设计方法
  HT1621液晶显示控制器是多功能全自动智能开关的显示部件,能实时、准确、在线监控供电线路的运行情况。一旦线路出现漏电、过载、短路、过压、欠压和缺相时,智能安全用电开关能立刻启动保护程序,并显示在HT1621液晶显示控制器上。在智能化楼宇、中高档家庭住宅、电力系统、工矿企业、国家重点消防单位以及石油化工、文教卫生、金融、电信等领域。基于单片机的HT1621液晶显示控制器应用广泛。本文详细讨论段式液晶模块HT1621D与单片机STC89C52的一种硬件接口电路和软件编程方法。   1 HT1621液晶模块与STC89CS2单片机   HT1621是128点内存映像和多功能的LCD驱动器,HT1621的软件配置特性使它适用于多种
[单片机]
基于<font color='red'>单片机</font>的HT1621液晶显示系统设计方法
51单片机-再次熟悉串口
串口是非常常用的一个调试工具,我们都必须熟练使用串口的各个功能。 1.题目要求和解决方案 我们要做的是,电脑端发送字符串过来给单片机,然后单片机这边接收完之后要回复给电脑端,回复内容为“接收完成!”。单片机这边把接收到的数据存放在定义好的全局变量数组里面,我们可以通过按K4发送回去给电脑端查看刚刚接收到的内容并把它显示出来。 我们要知道,一个汉字是需要两个字节内存的,比如电脑端发送的字符串为“好好学习,天天向上!”其中的两个标点符号也是中文输入法打上的话,一个标点符号也是占用两个字节,这个字符串就是一共占用10*2=20个字节内存。 那么怎样判断是否把字符串的数据都接收完成了呢?我们参考了宋老师的编程思想,使用定时
[单片机]
51<font color='red'>单片机</font>-再次熟悉串口
基于PIC单片机的正弦波逆变器设计与实现
目前,SPWM信号主要有3种生成方式: 1)使用比较器、振荡器等模拟电路产生三角波和方波进行比较,产生SPWM波,但是此种方法电路复杂,受元器件精度影响大,且不易控制; 2)利用专用SPWM集成芯片,其优点是电路简单,集成度高,缺点是无法全面实现对系统的反馈控制、监视管理和保护工作,故一般也要配合单片机实现; 3)利用单片机等微处理器产生SPWM波,此方法控制电路简单,调节灵活,硬件成本低。本文介绍一种利用PIC16F877A单片机实现SPWM波形的方法,并将其应用到全桥逆变电路中,验证了利用PIC单片机调制SPWM波的可行性。 1、系统总体设计 本系统从结构上看主要由单片机控制电路、驱动及逆变主电路组成。 1.1、单片机控制
[单片机]
基于PIC<font color='red'>单片机</font>的正弦波逆变器设计与实现
8051单片机(STC89C52)八段数码管轮流显示0~7
在8个数码管上自右开始, 轮流显示 0 ~ 7. #include STC89C5xRC.H void delay()//提供时延 { int i, j; for(i = 0; i 300 ; i++) for(j = 0; j 300; j++) ; } void f1_3_4_3()//在8个数码管上轮流显示0~7 { unsigned char code DIG_CODE = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07}; int i; while(1) { for(i = 0; i 8; i++) { P2 = i 2; //
[单片机]
STM32F103C8T6单片机通过I2C库函数来读写24C02存储器
电路连接:SCL和SDA分别接到PB6和PB7上,并都外接上10kΩ上拉电阻。 电路板如下图所示: 最左边的4个排针接的是电源和串口。 由于板上没有任何外部晶振,所以在Keil中建好工程后, 要将RTE/Device/STM32F103C8/system_stm32f10x.c中的SYSCLK_FREQ_72MHz的定义注释掉,防止SystemInit函数打开HSE晶振。 #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) /* #define SYSCLK_FREQ_HSE HSE_VALUE *
[单片机]
基于通用单片机的最小系统设计
单片机最小系统,是指用最少的元件组成的可以工作的单片机系统。为了方便设计者自行开发和应用,文章设计了基于一个通用的单片机的最小系统。该系统以C8051F320为主控芯片,设计了电源电路、复位电路、时钟电路、存储器扩展电路、串口通信电路和液晶显示电路,并介绍了各部分的功能。实验证明改最小系统原理正确,工作可靠。可用于科研、电子电路设计等领域。 单片机(MCU)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。随着计算机技术的高速发展,单片机以其自身的特点,己广泛应用于
[单片机]
基于通用<font color='red'>单片机</font>的最小系统设计
51单片机P0口的特性及使用方法解析
一、P0口特性: P0口为三态双向I/O口。对于内部有程序存贮器的单片机基本系统(如定制的8051),P0口可以作为输入/输出口使用,直接连外部的输入/输出设备;也可以作为系统扩展的地址/数据总线口。对于内部没有程序存贮器的单片机(如8031),P0口只能作为地址/数据总线口使用。 1、P0口的输出驱动器中也有一个多路电子开关。输出驱动器转接至口锁动器的Q端时,P0口作为双向I/O口使用。 这时,CPU发来的控制信号为低电平,使输出驱动电路的上拉场效应管T1截止。P0口的锁存器为“1”时,输出驱动器中的两个场效应管均截止,引脚浮空;由于P0口输出电路是漏极开路的电路,必须外接10kΩ拉高电阻才能有高电平输出。而写入“0”时,下
[单片机]
51<font color='red'>单片机</font>P0口的特性及使用方法解析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved