Всем привет. Делаю проект карт ридера с использованием LPC11u12, в котором встроена возможность связи со смарт картой через UART. Для обеспечения нужной частоты нужно заполнить регистры DLL и DLM по следующему правилу:
uint32_t divider = ((( sys_clk / ((F/D) / 2) ) / baudrate + 1) >> 1;
LPC_USART->DLM = (divider >> 8) & 0xff;
LPC_USART->DLL = divider & 0xff;
Проблема в чем: F/D * baudrate это и есть частота тактирования карты, а значит их можно заменить прям значением этой пресловутой частоты. НО ничего в таком случае не работает
uint32_t divider = (((sys_clk * 2) / Freq) + 1) >> 1;
Скажу сразу - значения делителя идентичные, но нужная частота не обеспечивается.