ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
909587 Топик полностью
misyachniy (11.03.2019 21:38, просмотров: 405) ответил rual на Всё ж не понятно, функция есть функция, обязан читать каждый раз.
Не видно описания констант и переменных 1)Компилятор мог заинлайнить функцию. 2) Кроме того мог сравнивнить 2 выражения 1 if (status != I2C2_MESSAGE_PENDING) return true; else false; 2 while (!i2c_transaction_complite()) и получить while (status == I2C2_MESSAGE_PENDING) Затем сравнив типы status и I2C2_MESSAGE_PENDING принять решение, о том что выражение while (!i2c_transaction_complite()) всегда true. Лучше писать выражение подлиннее используя регистр периферии в котором находится флаг. Так как регистр всегда описывают как volatile. Например: while ((register_with_flag & I2C2_MESSAGE_PENDING ) == 0)