STM32中断函数放在while循环里面还是外面
时间: 2023-08-11 11:07:59 浏览: 390
STM32的中断处理函数不应该放在while循环中,而应该放在外面。这是因为中断处理函数是一种特殊的函数,它在中断发生时被调用,执行完毕后会自动返回到之前的执行状态。如果将中断处理函数放在while循环中,会导致中断处理函数被重复调用,从而影响系统的实时性能。
在STM32中,中断处理函数通常是以“void 函数名(void)”的形式定义的,并且要加上“__interrupt”关键字,表示这是一个中断处理函数。在中断处理函数中,可以执行必要的操作,如读取外设状态,清除中断标志位,更新系统状态等。
因此,一般来说,中断处理函数应该放在主函数的外面,以确保中断处理函数能够及时响应中断请求,保证系统的实时性能。
相关问题
STM32中断回调函数应该放在while循环里面还是外面
STM32的中断回调函数通常也不应该放在while循环中,而应该放在外面。回调函数是一种特殊的函数,它在某个事件发生时被调用,用于处理该事件的响应。和中断处理函数一样,回调函数的执行时间也应该尽可能短,以确保系统的实时性能。
在STM32中,回调函数通常是由驱动程序或库函数调用的,用于处理外设事件或其他事件。这些回调函数通常会在主函数外面定义,并且会在初始化时被注册到相应的驱动程序或库函数中。
因此,一般来说,回调函数也应该放在主函数的外面,以确保可以及时响应事件,保证系统的实时性能。
在stm32中使用oled屏,其中把oled_refresh函数放在while循环里面会导致屏幕闪烁
这可能是因为oled_refresh函数的执行时间过长,导致在while循环中频繁刷新屏幕,从而造成闪烁的现象。可以尝试将oled_refresh函数放在定时器中断中执行,或者优化oled_refresh函数的代码,减少执行时间,从而解决屏幕闪烁的问题。
阅读全文