سلام و درود
توی کتابخونه های Stm32، Define هایی قرار دارند به شکل زیر، معنا و مفهوم شرط while چی هست.
توی کتابخونه های Stm32، Define هایی قرار دارند به شکل زیر، معنا و مفهوم شرط while چی هست.
کد:
[COLOR=#333333][FONT=Consolas]#define __HAL_RCC_TIM1_CLK_ENABLE() do { \[/FONT][/COLOR] [COLOR=#333333][FONT=Consolas] __IO uint32_t tmpreg; \[/FONT][/COLOR] [COLOR=#333333][FONT=Consolas] SET_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\[/FONT][/COLOR] [COLOR=#333333][FONT=Consolas] /* Delay after an RCC peripheral clock enabling */\[/FONT][/COLOR] [COLOR=#333333][FONT=Consolas] tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_TIM1EN);\[/FONT][/COLOR] [COLOR=#333333][FONT=Consolas] UNUSED(tmpreg); \[/FONT][/COLOR] [COLOR=#333333][FONT=Consolas] } while(0U)[/FONT][/COLOR]
و
خوب قراره تایمر 1 رو فعال کنیم بعد از ست کردن بیت فعال سازی و خواندن بیت مربوطه به شرط حلقه while میرسیم. 0U یعنی عدد به فرمت unsigned int . در نتیجه یعنی 0 ، خوب بودن مقدار صفر در شرط while مانع از دوباره اجرا شدن حلقه میشه در نتیجه چه نیازی به بودن حلقه می باشد؟
کد:
[URL="https://www.eca.ir/forums/usertag.php?do=list&action=hash&hash=define"]#define[/URL] UNUSED(x) ((void)(x))
دیدگاه