ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
19 августа
1532074 Топик полностью
_ctac_ (22.07.2025 15:12, просмотров: 157) ответил Бapбoc на Простите малограмотного. Есть в STM32G431 управляющий регистр 32 бита. Есть в нём битовое поле 8 бит. Менять это поле, не портя содержимое регистра, можно только через чтение-модификацию-запись? Или есть за пазухой у АРМА какие-нибудь фишки. Приданная мне программист сделала в два хода -- обнуляет поле через И, потом загружает через ИЛИ. Я только нонеча вечером глянул код и понял, откель беда.
Программист все правильно сделал, стандартный подход обнулить по маске и записать новое значение CTRL_PORT &= MASK; CTRL_PORT |=value; 

Если нужна атомарность при изменении регистра, тогда такой подход в лоб не подайте. Для изменения одного бита можно использовать бит-бандинг.

Некоторые специальные регистры имеют механизм, когда биты сбрасываются записью единички.