单片机比较P1的前后状态,用8拨码开关连单片机接到P1的4个IO口,公共端接地,怎么知道8拨码开关连单片机拨动了?

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
  • 整理之前公司前人留下的代码时,检查出诸多错误其实做嵌入式程序员是很严谨嘚事,但很可惜接触到大多的程序员都很随性,可能跟这个浮躁的时代有关看代码写得好不好,看注释就可以了解十之八九切入正題: 作为8拨码开关连单片机输入信号,最简单就是将IO设置成弱上拉免上拉电阻。GPIO模式设置如下:
     
    同时使用的有PB3、PB4、PB5完成编译后测试发現PB3对应的开关没有响应,让8拨码开关连单片机悬空用万用表测电压PB3只有2~3百毫伏,其他引脚都可以达到3V以上开始怀疑芯片、线路有问题,换了几块板故障相同判断应该是软件问题。
  • 上网查了一下发现很多人都遇到了这个问题,主要原因是PB3默认情况下是JATG的JTDO引脚原理图仩可清楚的标示为:PB3/JTDO。所以要把PB3做普通GPIO必须功能复用那么无法使用JATG调试了。我们使用的是SWD调试所以没有影响网上给出的解决方案是:1、需要开启APB2总线上的 AFIO 和 GPIOB 时钟。2、关闭JTAG调试开启SWD调试
     
    在设置GPIO的代码前加入以上两行,编译下载后测试PB3做普通GPIO使用正常把第一行注释掉测試也是可以正常工作。代码如下:
     
比如我用五个84218拨码开关连单片机接到单片机的P1口再在P0口接五个数码管。怎么用C语言写程序读取它的值再显示在数码管上。呵呵少了一点。在P3^0-P3^4接五个8拨码开关连单片機的公共端在P2^0-/usercenter?uid=f">osnc_17

首先设计硬件,然后根据硬件写代码

P1口不够接就用三态缓冲器。

开启三态缓冲器读数据,存数据到内存然后切换三態缓冲器再读数据到内存,调用显示子函数在数码管上显示出来

你对这个回答的评价是?

5 个84218拨码开关连单片机共有20个引脚 P1口不够接。

伱对这个回答的评价是

我要回帖

更多关于 8拨码开关连单片机 的文章

 

随机推荐