-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
bugSomething isn't workingSomething isn't working
Description
From the datasheet of RM0316 (STM32F303xB/C/D/E/6/8)
The clock selection for USART1 has the following definition:
Bits 1:0 USART1SW[1:0]: USART1 clock source selection
This bit is set and cleared by software to select the USART1 clock source.
00: PCLK selected as USART1 clock source (default)
01: System clock (SYSCLK) selected as USART1 clock
10: LSE clock selected as USART1 clock
11: HSI clock selected as USART1 clock
While in the clock config enum is:
pub const Usart1ClockSelectionList = enum {
RCC_USART1CLKSOURCE_SYSCLK,
RCC_USART1CLKSOURCE_HSI,
RCC_USART1CLKSOURCE_LSE,
RCC_USART1CLKSOURCE_PCLK1,
RCC_USART1CLKSOURCE_PCLK2,
pub fn get(self: @This()) usize {
return switch (self) {
.RCC_USART1CLKSOURCE_SYSCLK => 0,
.RCC_USART1CLKSOURCE_HSI => 1,
.RCC_USART1CLKSOURCE_LSE => 2,
.RCC_USART1CLKSOURCE_PCLK1 => 3,
.RCC_USART1CLKSOURCE_PCLK2 => 3,
};
}
};None of the @enumFromInt nor .get() will provide the correct setting for the RCC.CFGR register.
The same situation happen for other USART clock selection list.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working