以前大都做8位单片机,用C或汇编,一直都是用8位的全局变量在中断和大循环中共用,++,--,赋值的处理不用考虑临界问题,只有16位以上才考虑。现在用STM32突然想起这个问题,网上一查,这样的方式不行了,bit变量,8位等等都需要考虑这个问题,实际看了KEIL C编译后的汇编,确实一句++,--,汇编是2-3句。是不是STM32所有的中断和大循环通讯都要注意临界状态。可是我看开发板的例程,临界区也没有频繁开关中断。请熟悉这方面的高手指点一下,如果在STM32上用这种方法,要怎样用。或者有更好的方法。是不是如果不按临界处理,都会留下隐患? |