STM32F103R8T6 PB3 作拨码开关输入时无效的原因和处理方法
- 整理之前公司前人留下的代码时,检查出诸多错误,其实做嵌入式程序员是很严谨的事,但很可惜,接触到大多的程序员都很随性,可能跟这个浮躁的时代有关,看代码写得好不好,看注释就可以了解十之八九。切入正题: 作为拨码开关输入信号,最简单就是将IO设置成弱上拉,免上拉电阻。GPIO模式设置如下:
gpio_conf.GPIO_Mode = GPIO_Mode_IPU;
同时使用的有PB3、PB4、PB5。完成编译后测试发现PB3对应的开关没有响应,让拨码开关悬空,用万用表测电压PB3只有2~3百毫伏,其他引脚都可以达到3V以上,开始怀疑芯片、线路有问题,换了几块板故障相同,判断应该是软件问题。
- 上网查了一下,发现很多人都遇到了这个问题,主要原因是PB3默认情况下是JATG的JTDO引脚,原理图上可清楚的标示为:PB3/JTDO。所以要把PB3做普通GPIO必须功能复用,那么无法使用JATG调试了。我们使用的是SWD调试所以没有影响,网上给出的解决方案是:1、需要开启APB2总线上的 AFIO 和 GPIOB 时钟。2、关闭JTAG调试开启SWD调试。
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
在设置GPIO的代码前加入以上两行,编译下载后测试PB3做普通GPIO使用正常,把第一行注释掉测试也是可以正常工作。代码如下:
//RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOF, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);gpio_conf.GPIO_Pin = GPIO_Pin_3;GPIO_Init(GPIOB, &gpio_conf);
STM32F103R8T6 PB3 作拨码开关输入时无效的原因和处理方法相关推荐
- 使用IDEA时快捷键无效的原因和解决方法
使用IDEA时快捷键无效的原因和解决方法 今天尝试用IDEA全局搜索时(Ctrl+Shift+F),发现无效. 浏览了一些博客,然后发现大家的回答出奇的一致.所以肯定是了: IDEA快捷键失效的原因, ...
- 使用 ADOX 将 Table 添加到 Catalog 时报“类型无效”的原因和解决方法
http://blog.csdn.net/kfhzy/article/details/6020283 http://blog.csdn.net/kfhzy/article/details/602054 ...
- php iis ajax 无效,IIS7中Ajax.AjaxMethod无效的原因及解决方法
最近做用Ajax.AjaxMethod方法的时候,在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,我就郁闷了,折腾了大半天,终于找到错误原因了. 因为我发布网站用的是iis ...
- C语言实现可写入文件的账号密码登录系统,密码输入时掩盖,登录界面菜单选择,更改密码系统,课设必备。
账号登录系统在很多系统设计时都时必不可少的,今天这个登录系统功能较全,可以注册,登录,找回密码,修改密码,以及在输入密码时会有*将密码掩盖,还有完善地登录选择界面,废话不多,上代码! 目录 1.头文件 ...
- php没开启wap功能,php作wap开发时遇到的问题
1.文件格式 首先要遇到的问题肯定是文件格式,在作 web开发时,大家都是用的html或xhtml,到了wap开发时,就得用wml了.什么是wml?大家可以去查更详细的资料,我这里只是略微的提到. 在 ...
- 笔记本蓝牙显示输入码无效_Win10系统蓝牙设备输入码无效是怎么回事
现在,越来越多用户都开始使用蓝牙鼠标,因为其非常小巧,操作起来也十分简单.不过,近来一些朋友在 win10系统 电脑中连接蓝牙鼠标时,经常会遇到输入码无效提示,导致无法正常使用蓝牙鼠标,该怎么办呢?接 ...
- MOS管用作开关时在电路中的连接方法
MOS管用作开关时在电路中的连接方法 反证: NMOS管正确接法: PMOS管正确接法: D极接输入:S极接输出. S极接输入:D极接输出. 假如: 假如反接: S接输入,D接输出呢? D接输入,S接 ...
- 使用有序GUID:提升其在各数据库中作为主键时的性能
原文出处:https://www.codeproject.com/articles/388157/guids-as-fast-primary-keys-under-multiple-database ...
- JS实现在输入框内输入@时,邮箱账号自动补全
<!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8&quo ...
最新文章
- Window编程主函数详解
- 国内自动驾驶公司争先入局Robotaxi
- 红盟过客提到的 CCIE 必读书籍
- 2011年全国软件大赛模拟题及参考答案(Java高职组)
- [渝粤教育] 三峡大学 电力电子技术(Ⅱ) 参考 资料
- 20 best jquery 截图
- java选择题多选题系统小程序_单选题与多选题判断得分(自动考试小程序,入门级)...
- 【踩坑记录】mybatis-plus的insert方法,默认会生成一个uuid作为主键,导致类型不一致,存入数据库报错
- 海报设计素材模板|炫彩创意PSD分层时尚艺术海报 ​​​​
- MyEclipse中更改JRE环境
- 数据库架构设计——索引结构设计
- 使用ECS和OSS搭建个人网盘(阿里云官方)
- 题解 P4480 【[BJWC2018]餐巾计划问题】
- UE4 Sequencer的事件调用
- 如何在网上回复负面评论
- 网络编程:网络协议简介
- 发布pip项目(包含静态文件)遇到的坑
- 2022第二届中国新能源汽车功能安全创新国际峰会
- PAT乙级C语言 1028 人口普查
- flash 中无法导出swf文件的解决方法