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就不会有这种问题了