记录一些bug和知识

stm32下载烧录时报错can not access memory

一直按着复位键,然后烧录,会报一个错,然后松开再烧录就可以成功了。


关于枚举

枚举类型即是整型,定义枚举类型主要是为了将变量的值限制为枚举中的值。


无延时的按键消抖思路

有延时的按键消抖一般用延时来度过按键按下时和松开时电平变化的毛刺,并且用一个while语句判断你是否松开,此期间无法执行其他的程序,比如你一直按住按键,会一直卡在while循环里,如果有数码管动态刷新就会使数码管黑屏。

而没有延时的按键消抖,通过判断按键状态改变后电平是否连续。(100us(时间不确定)检测一次,检测100次均为按下,才视为按下,比传统的代码检测更严格了,但实际上检测次数和频率可以调整,降低检测频率和次数,同样可以准确检测)这种方法不会影响其他程序的执行,因此实际效果就像程序并行一样,此时你一直按住按键就不会影响数码管的正常运行。

以按键按下为高电平为例,定义一个变量,每次执行按键轮询都会判断电平是否为高,如果为高就使此变量加一,如果不为高,则将这个变量清零。当这个变量达到预先设置的值时就确定按下真的按下(因此有抖动时会将变量清零,而无法达到设置的值)。

参考视频:非阻塞延时实现独立按键的消抖与按键识别方法


stm32无法调试

具体为电源线和仿真器无法同时连接,在keil的debug Setting显示SWD Communication Failure,使用的是cubemx生成的代码。

解决方法将单片机BOOT0接VCC,然后使用不是cubemx生成的代码进行下载然后再将BOOT0接回到GND重新上电就行,原因是是配置cubemx中SYS没有配置,将SYS配置为serial wire就不会有这种问题了

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值