ALexx 0 15 мая, 2019 Опубликовано 15 мая, 2019 · Жалоба Доброго времени суток! Пытаюсь заставить UART STM32F373 гененрировать прерывание по Character Match. Для этого, в частности, необходимо записать ожидаемый символ (в моем случае - CR = 0x0D) в регистр USART1->CR2 начиная с 24го бита. Использую STM32F3-HAL В прцедуре инициализации UART: //Setup interrupt on Character Match __HAL_UART_CLEAR_FLAG(&hUart1, UART_CLEAR_CMF); __HAL_UART_ENABLE_IT(&hUart1, UART_IT_CM); //Character Match on CR ('\r' = 0x0D) MODIFY_REG(hUart1.Instance->CR2, USART_CR2_ADD, ((uint32_t)(0x0D)) << USART_CR2_ADD_Pos); Безрезультатно... в CR2 - нули Пробую запись в лоб: //Character Match on CR ('\r' = 0x0D) hUart1.Instance->CR2 = 0x0D000000; Или даже так //Character Match on CR ('\r' = 0x0D) *((uint32_t*)0x40013804UL) = 0x0D000000; Результат - тот же - нули в CR2. Никто кроме этих строчек в данный регистр не пишет - прерывания на время инициализации запрещены. Эррата тоже вроде ничего не говорит о данном "феномене"... Не сталкивался ли кто с таким поведением и если да - как решали. Заранее спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
seniorandre 0 15 мая, 2019 Опубликовано 15 мая, 2019 · Жалоба Может это спасет отца русской демократии Quote This bit field can only be written when reception is disabled (RE = 0) or the USART is disabled (UE=0) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ALexx 0 15 мая, 2019 Опубликовано 15 мая, 2019 · Жалоба 12 minutes ago, seniorandre said: Может это спасет отца русской демократии Большое спасибо! Действиткельно спасло! Не дочитал :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться