stm32上的一点意外

接触STM32有接近一个月的时间了,本来开始是不喜欢也不屑在这个板子的开发的,因为都用现成的封装库开发,但是在实习期间,觉得能多学点什么就学点什么吧。

最近在项目中,还真有些零零碎碎的问题找上头来,解决后也算长了经验吧,当然特别对于我这种大三没一点工作经验的人来说还好。

其中一个问题,在读取引脚电平的时候,很简单,就调用gpio_readinputdata()读取电平,返回值是一个16bit的值,其中有效的只是高八位,然后根据值的状态是否变化发送一些数据,在开始的版本中,一点问题都没有,后来一个版本就出现问题了,它会一直不断发数据。原因是:早期版本,我习惯性把返回值&0xff00,取前八位,后来的版本省略了这步,所以导致了整个值状态一直在变化,变化的是低八位.....问题很小,可是突然想起,保持一个好的编程习惯和编程技巧,就像取哪些位的值就&上那些位,或许可以省掉很多错误。。。

另外有个小问题,是在做一个东西的处理时,需要读取接入端的电平脉冲,就跟按键一样,本来也是很简单的,一下子就搞定。可是在实际测试中,问题来了,开始启动就会无缘无故出现一个脉冲,这个脉冲是怎么来的呢?原来,那类器件一半是初始高电平的,所以我采取低电平到高电平的跳变来做处理,而刚好我那个两个独特些,初始默认低电平,所以我开始就会出现一个跳变,于是,解决方案出来,在初始化的时候,读取那个引脚的电平,然后再做变化处理。。。弄好又测,问题还是有,这是怎么回事呢?。。。看了看硬件连线,发现了又一个问题,原来,器件有个地方是连接在单片机上的,每次重启都一起关电源重启,单片机初始化,器件也初始化,但是,单机击在初始化的时候,很快的速度就读取了器件的初始电平,那个电平跟实际中器件的电平不一样。。。解决办法很简单,单片机初始好,延迟一点时间,再读取器件引脚电平。。。搞定...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值