在某些时候需要MCU引脚默认高电平,比如用来复位蓝牙模块的引脚,一旦STM32复位时,GPIO口就会低电平,这时,也会复位蓝牙模块,那么,有没有办法不复位蓝牙模块呢?有的,一种是硬件的方法,很简介,就是加一个三极管,做一个反向器。

当然,也有更简单的方法,就是使用默认高电平的引脚。

STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。其中,PA13/PA14,是用来做SWD调试口的,所以,这2个脚不能动。剩下的PA15,PB3,PB4这三个脚,我一一测试了,只有PB4是默认高电平,也就是说,即使STM32复位了,这个脚的电平依然不会产生低电平。

当然,由于这个脚是默认JTAG功能的,所以,初始化时步骤会多一点,和普通GPIO口不一样,要注意了。

void GPIO_Init(void)
{GPIO_InitTypeDef   GPIO_InitStructure;GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能GPIO_InitStructure.GPIO_Pin = /*GPIO_Pin_3 | */GPIO_Pin_4;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);//     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//  GPIO_Init(GPIOA, &GPIO_InitStructure);//注意:不要忘记在RCC_Configuration()中开启AFIO时钟,//AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
BT_RST_ON;
}

但是,经验证,此法还是不行,因为在设置IO口的瞬间,电平会被拉低。

后来又想到了一个巧妙的方法,就是:当要设置低电平时,才是配置这个引脚,配置完刚好是低电平,不会影响其他,完美。

改后代码如下:

void GPIO_Init(void)
{GPIO_InitTypeDef   GPIO_InitStructure;GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能GPIO_InitStructure.GPIO_Pin = /*GPIO_Pin_3 | */GPIO_Pin_4;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(GPIOB, &GPIO_InitStructure);//     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
//  GPIO_Init(GPIOA, &GPIO_InitStructure);//注意:不要忘记在RCC_Configuration()中开启AFIO时钟,//AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
}void GPIO_level(u8 is_hight)
{static u8 s_is_init = 0;if (is_hight){GPIO_SetBits(GPIOB,GPIO_Pin_4);}else{if (s_is_init == 0){s_is_init = 1;GPIO_Init();} GPIO_ResetBits(GPIOB,GPIO_Pin_4);}
}

STM32哪些引脚默认高电平相关推荐

  1. 输出高电平程序c语言,51用c语言怎么编程检测US-100超声波测距模块echo/rx引脚输出高电平时间长度,,谁能给我个模板...

    满意答案 lixsh518 2016.07.24 采纳率:46%    等级:9 已帮助:768人 #include #define uchar unsigned char #define uint ...

  2. 1.8255A中,若要把C口的PC3引脚置高电平,则命令字应该设

    西工大机考<微机原理及应用作业> 寻求答案(非免费)找我Q和V:2082851315 微机原理及应用作业1 试卷总分:100 得分:94 一. 单选题 (共 30 道试题,共 60 分) ...

  3. STM32 PA15始终为高电平

    目录 释放PA15引脚 释放PA15引脚 若使用PA15点亮LED,在操作GPIO时,发现不能够将其置为低电平.原因在于PA15属于JTAG引脚,上电后默认其功能为JTAG,不能作为普通的IO口.因此 ...

  4. TP4056电池(BAT)引脚输出高电平

    TP4056和电池连接的时候用较长导线鳄鱼夹连接的,导致充电时BAT引脚输出电平始终在4V以上,将电池焊接到板子上即可.

  5. stm32中空的I/O管脚是高电平还是低电平

    STM32中空的I/O管脚是高电平还是低电平取决于具体情况. 1.IO端口复位后处于浮空状态,也就是其电平状态由外围电路决定. 2.STM32上电复位瞬间I/O口的电平状态默认是浮空输入,因此是高阻. ...

  6. LS1028GPIO初始化为高电平添加按键

    LS1028 GPIO初始化为高电平 1. 修改RCW 以将GPIO3_DAT14初始化为高电平为例,默认是将用作SPI3_SCK,需要将其先复用为GPIO 修改RCW:firmware/rcw/ls ...

  7. 系统上电复位后GPIO默认输出电平对系统的影响

    GPIO常用于对某个模块的控制,比如振动马达的震动使能控制,LCD的背光使能控制,闪光灯的使能控制,耳机和喇叭功率放大器的输出控制.这些模块对上电时序要求都比较敏感,如果GPIO的选择不恰当,当CPU ...

  8. 【STM32】引脚配置—F1与F4系列

    目录 一.stm32的GPIO模式简介 1.输入模式 2.输出模式 3.复用模式 各形式说明: 二.GPIO配置 1.GPIO初始化函数 2.外设使能函数及选择 关于使能函数的选择 3.完整的GPIO ...

  9. 树莓派输出高电平C语言,树莓派控制高电平蜂鸣器(c语言+新手向)

    话不多说,先上代码: #include #include #include #define VOICE 0 void ultraInit(void){ pinMode(VOICE,OUTPUT);// ...

最新文章

  1. 后端返回的数据中换行符 html换行
  2. 手工测试对比自动化测试
  3. mysql索引图文操作_图文并茂,说说MySQL索引
  4. 《系统集成项目管理工程师》必背100个知识点-23整体变更控制流程
  5. volatile的实现细节
  6. oracle delete 空间增加,实战经验:关于Oracle Delete数据后空间重用问题的测试
  7. 《深度学习入门:基于Python的理论与实现》第四章代码原理详细解析
  8. 海马苹果助手ipad版_iOS逆向-ipa包重签名及非越狱手机安装多个微信!
  9. dataframe常用操作总结
  10. 【斗医】【3】Web应用开发20天
  11. WebSocket 实现链接 群聊(low low low 版本)
  12. 技术人 | 我在支付宝体验技术部这四年学到了什么?
  13. scratch高级进阶的游戏项目分享:(知识的综合应用),含项目源文件百度云盘链接
  14. ansys linux 安装教程pdf,Deepin linux安装Ansys13详细教程.pdf
  15. 超简洁好看的个人网站导航页源码
  16. 微信小程序开发费用一览表
  17. 超脑计划孵出的阿尔法蛋 拥有什么超能力?
  18. 公交线路查询接口使用说明
  19. iQOO手机如何打开高清通话volte?
  20. 家庭花卉养殖技巧及技术收集

热门文章

  1. 基于 Agora SDK 实现 Web 端的多人视频互动
  2. 灰度共生矩阵(Gray-level Co-occurrence Matrix,GLCM)
  3. html期末作业代码网页设计网站设计——橙色精美零食(3页) web前端课程设计_web前端课程设计代码,web课程设计-HTML网页制作代码
  4. 【raspberrypi】retropie街机模拟器
  5. Windows10下查看网口和修改网口IP
  6. 马平福书法家中华汉字文化艺术作品欣赏
  7. 技术干货 | Libra 技术解读,详解Libra共识协议!
  8. “求职路”上英语口语面试问答大全收藏
  9. Node- Buffer对象,处理二进制数据
  10. 上线第三天,陀螺财经App再添两大重量级合作伙伴!