Добрый день,
Пробую UART и столкнулся с непонятной ситуацией.
Тестовый код:
Ножки от процессора (rx/tx) до преобразователя USB<>UART (rx/tx) идут напрямую (без каких либо опторазвязок или сопротивлений).
Настраиваю терминал на компьютере с параметрами: Скорость 9600, 8 бит, Четность - нет, Стоповые биты 1.
На терминал за место 'A' - выводятся 2 символа с кодами 1С FC.
Меняю скорость передачи на любую другую, последовательность символов не изменяется (1C FC).
Пытаюсь отправить с процессора "Test" на терминале получаю 1C FC 00 FC 00 FC 00 FC.
Преобразователь USB<>UART рабочий - проверял замыканием RX на TX. Данные идут правильные.
Из-за чего такое может быть ? Не правильно рассчитывается скорость передачи ?
Комбинация настроек control1
UART_CONTROL1_TE_M | UART_CONTROL1_M_8BIT_M | UART_CONTROL1_RE_M | UART_CONTROL1_UE_M тоже не помогает, как и инверсия через настройку control2.
Пробую UART и столкнулся с непонятной ситуацией.
Тестовый код:
void SystemClock_Config(void)
{
PCC_InitTypeDef PCC_OscInit = {0};
PCC_OscInit.OscillatorEnable = PCC_OSCILLATORTYPE_ALL;
PCC_OscInit.FreqMon.OscillatorSystem = PCC_OSCILLATORTYPE_OSC32M;
PCC_OscInit.FreqMon.ForceOscSys = PCC_FORCE_OSC_SYS_UNFIXED;
PCC_OscInit.FreqMon.Force32KClk = PCC_FREQ_MONITOR_SOURCE_OSC32K;
PCC_OscInit.AHBDivider = 0;
PCC_OscInit.APBMDivider = 0;
PCC_OscInit.APBPDivider = 0;
PCC_OscInit.HSI32MCalibrationValue = 128;
PCC_OscInit.LSI32KCalibrationValue = 128;
PCC_OscInit.RTCClockSelection = PCC_RTC_CLOCK_SOURCE_AUTO;
PCC_OscInit.RTCClockCPUSelection = PCC_CPU_RTC_CLOCK_SOURCE_OSC32K;
HAL_PCC_Config(&PCC_OscInit);
}
int main()
{
SystemClock_Config();
UART_Init(UART_0, 3333, UART_CONTROL1_TE_M | UART_CONTROL1_M_8BIT_M, 0, 0);
xprintf("A");
while (1)
{
}
}
Ножки от процессора (rx/tx) до преобразователя USB<>UART (rx/tx) идут напрямую (без каких либо опторазвязок или сопротивлений).
Настраиваю терминал на компьютере с параметрами: Скорость 9600, 8 бит, Четность - нет, Стоповые биты 1.
На терминал за место 'A' - выводятся 2 символа с кодами 1С FC.
Меняю скорость передачи на любую другую, последовательность символов не изменяется (1C FC).
Пытаюсь отправить с процессора "Test" на терминале получаю 1C FC 00 FC 00 FC 00 FC.
Преобразователь USB<>UART рабочий - проверял замыканием RX на TX. Данные идут правильные.
Из-за чего такое может быть ? Не правильно рассчитывается скорость передачи ?
Комбинация настроек control1
UART_CONTROL1_TE_M | UART_CONTROL1_M_8BIT_M | UART_CONTROL1_RE_M | UART_CONTROL1_UE_M тоже не помогает, как и инверсия через настройку control2.