30 #ifndef __NIIETCM4_RCC_H
31 #define __NIIETCM4_RCC_H
52 #define RCC_CLK_CHANGE_TIMEOUT ((uint32_t)10000)
53 #define RCC_CLK_PLL_STABLE_TIMEOUT ((uint32_t)100)
79 #define IS_RCC_PLL_REF(PLL_REF) (((PLL_REF) == RCC_PLLRef_XI_OSC) || \
80 ((PLL_REF) == RCC_PLLRef_USB_CLK) || \
81 ((PLL_REF) == RCC_PLLRef_USB_60MHz)|| \
82 ((PLL_REF) == RCC_PLLRef_ETH_25MHz))
100 #define IS_RCC_PLL_NO(PLL_NO) (((PLL_NO) == RCC_PLLNO_Disable) || \
101 ((PLL_NO) == RCC_PLLNO_Div2) || \
102 ((PLL_NO) == RCC_PLLNO_Div4))
120 #define IS_RCC_UART_CLK(UART_CLK) (((UART_CLK) == RCC_UARTClk_SYSCLK) || \
121 ((UART_CLK) == RCC_UARTClk_XI_OSC) || \
122 ((UART_CLK) == RCC_UARTClk_USB_CLK) || \
123 ((UART_CLK) == RCC_UARTClk_USB_60MHz))
141 #define IS_RCC_SPI_CLK(SPI_CLK) (((SPI_CLK) == RCC_SPIClk_SYSCLK) || \
142 ((SPI_CLK) == RCC_SPIClk_XI_OSC) || \
143 ((SPI_CLK) == RCC_SPIClk_USB_CLK) || \
144 ((SPI_CLK) == RCC_SPIClk_USB_60MHz))
160 #define IS_RCC_USB_CLK(USB_CLK) (((USB_CLK) == RCC_USBClk_XI_OSC) || \
161 ((USB_CLK) == RCC_USBClk_USB_CLK))
177 #define IS_RCC_USB_FREQ(USB_FREQ) (((USB_FREQ) == RCC_USBFreq_12MHz) || \
178 ((USB_FREQ) == RCC_USBFreq_24MHz))
204 #define IS_RCC_ADC_CLK(ADC_CLK) (((ADC_CLK) == RCC_ADCClk_0) || \
205 ((ADC_CLK) == RCC_ADCClk_1) || \
206 ((ADC_CLK) == RCC_ADCClk_2) || \
207 ((ADC_CLK) == RCC_ADCClk_3) || \
208 ((ADC_CLK) == RCC_ADCClk_4) || \
209 ((ADC_CLK) == RCC_ADCClk_5) || \
210 ((ADC_CLK) == RCC_ADCClk_6) || \
211 ((ADC_CLK) == RCC_ADCClk_7) || \
212 ((ADC_CLK) == RCC_ADCClk_8) || \
213 ((ADC_CLK) == RCC_ADCClk_9) || \
214 ((ADC_CLK) == RCC_ADCClk_10) || \
215 ((ADC_CLK) == RCC_ADCClk_11))
237 #define IS_RCC_SYS_CLK(SYS_CLK) (((SYS_CLK) == RCC_SysClk_CPE_Sel) || \
238 ((SYS_CLK) == RCC_SysClk_POR) || \
239 ((SYS_CLK) == RCC_SysClk_XI_OSC) || \
240 ((SYS_CLK) == RCC_SysClk_PLL) || \
241 ((SYS_CLK) == RCC_SysClk_PLLDIV) || \
242 ((SYS_CLK) == RCC_SysClk_USB60MHz) || \
243 ((SYS_CLK) == RCC_SysClk_USB_CLK) || \
244 ((SYS_CLK) == RCC_SysClk_ETH25MHz))
274 #define IS_RCC_PERIPH_CLK(PERIPH_CLK) (((PERIPH_CLK) == RCC_PeriphClk_QEP0) || \
275 ((PERIPH_CLK) == RCC_PeriphClk_QEP1) || \
276 ((PERIPH_CLK) == RCC_PeriphClk_CMP) || \
277 ((PERIPH_CLK) == RCC_PeriphClk_PWM0) || \
278 ((PERIPH_CLK) == RCC_PeriphClk_PWM1) || \
279 ((PERIPH_CLK) == RCC_PeriphClk_PWM2) || \
280 ((PERIPH_CLK) == RCC_PeriphClk_PWM3) || \
281 ((PERIPH_CLK) == RCC_PeriphClk_PWM4) || \
282 ((PERIPH_CLK) == RCC_PeriphClk_PWM5) || \
283 ((PERIPH_CLK) == RCC_PeriphClk_PWM6) || \
284 ((PERIPH_CLK) == RCC_PeriphClk_PWM7) || \
285 ((PERIPH_CLK) == RCC_PeriphClk_PWM8) || \
286 ((PERIPH_CLK) == RCC_PeriphClk_WD) || \
287 ((PERIPH_CLK) == RCC_PeriphClk_I2C0) || \
288 ((PERIPH_CLK) == RCC_PeriphClk_I2C1) || \
289 ((PERIPH_CLK) == RCC_PeriphClk_ADC))
337 #define IS_RCC_PERIPH_RST(PERIPH_RST) (((PERIPH_RST) == RCC_PeriphRst_WD) || \
338 ((PERIPH_RST) == RCC_PeriphRst_I2C0) || \
339 ((PERIPH_RST) == RCC_PeriphRst_I2C1) || \
340 ((PERIPH_RST) == RCC_PeriphRst_USB) || \
341 ((PERIPH_RST) == RCC_PeriphRst_Timer0) || \
342 ((PERIPH_RST) == RCC_PeriphRst_Timer1) || \
343 ((PERIPH_RST) == RCC_PeriphRst_Timer2) || \
344 ((PERIPH_RST) == RCC_PeriphRst_UART0) || \
345 ((PERIPH_RST) == RCC_PeriphRst_UART1) || \
346 ((PERIPH_RST) == RCC_PeriphRst_UART2) || \
347 ((PERIPH_RST) == RCC_PeriphRst_UART3) || \
348 ((PERIPH_RST) == RCC_PeriphRst_SPI0) || \
349 ((PERIPH_RST) == RCC_PeriphRst_SPI1) || \
350 ((PERIPH_RST) == RCC_PeriphRst_SPI2) || \
351 ((PERIPH_RST) == RCC_PeriphRst_SPI3) || \
352 ((PERIPH_RST) == RCC_PeriphRst_ETH) || \
353 ((PERIPH_RST) == RCC_PeriphRst_QEP0) || \
354 ((PERIPH_RST) == RCC_PeriphRst_QEP1) || \
355 ((PERIPH_RST) == RCC_PeriphRst_PWM0) || \
356 ((PERIPH_RST) == RCC_PeriphRst_PWM1) || \
357 ((PERIPH_RST) == RCC_PeriphRst_PWM2) || \
358 ((PERIPH_RST) == RCC_PeriphRst_PWM3) || \
359 ((PERIPH_RST) == RCC_PeriphRst_PWM4) || \
360 ((PERIPH_RST) == RCC_PeriphRst_PWM5) || \
361 ((PERIPH_RST) == RCC_PeriphRst_PWM6) || \
362 ((PERIPH_RST) == RCC_PeriphRst_PWM7) || \
363 ((PERIPH_RST) == RCC_PeriphRst_PWM8) || \
364 ((PERIPH_RST) == RCC_PeriphRst_CAP0) || \
365 ((PERIPH_RST) == RCC_PeriphRst_CAP1) || \
366 ((PERIPH_RST) == RCC_PeriphRst_CAP2) || \
367 ((PERIPH_RST) == RCC_PeriphRst_CAP3) || \
368 ((PERIPH_RST) == RCC_PeriphRst_CAP4) || \
369 ((PERIPH_RST) == RCC_PeriphRst_CAP5) || \
370 ((PERIPH_RST) == RCC_PeriphRst_CMP))
395 #define IS_RCC_PLLDIV(PLLDIV) (((PLLDIV) & ((uint32_t)0xFFFFFF00)) == ((uint32_t)0x00))
401 #define IS_RCC_PLL_NR(PLL_NR) (((PLL_NR) <= ((uint32_t)33)) && ((PLL_NR) >= ((uint32_t)2)))
407 #define IS_RCC_PLL_NF(PLL_NF) (((PLL_NF) <= ((uint32_t)513)) && ((PLL_NF) >= ((uint32_t)2)))
413 #define IS_RCC_CLK_DIV(CLK_DIV) ((CLK_DIV) < ((uint32_t)64))
419 #define IS_RCC_SYS_FREQ(SYS_FREQ) (((SYS_FREQ) < ((uint32_t)100000000)) && ((SYS_FREQ) >= ((uint32_t)1000000)))
RCC_UARTClk_TypeDef
Выбор источника тактирования для UART.
void RCC_SPIClkCmd(NT_SPI_TypeDef *SPIx, FunctionalState State)
Включение тактирования SPI.
RCC_PLLRef_TypeDef
Выбор источника опорного сигнала PLL.
OperationStatus
Описывает коды возврата для функций при выполнении какой-либо операции.
RCC_SysClk_TypeDef RCC_SysClkStatus(void)
Текущий источник системного тактового сигнала.
RCC_ADCClk_TypeDef
Выбор модуля ADC для настройки его тактового сигнала.
void RCC_PeriphClkCmd(RCC_PeriphClk_TypeDef RCC_PeriphClk, FunctionalState State)
Включение тактирования выбранного блока периферии.
void RCC_UARTClkSel(NT_UART_TypeDef *UARTx, RCC_UARTClk_TypeDef RCC_UARTClk)
Настройка источника тактового сигнала для выбранного UART.
void RCC_SysClkDiv2Out(FunctionalState State)
Включение генерации тактового сигнала с частой равной половине системной на выводе H[0]...
Структура инициализации PLL.
RCC_USBClk_TypeDef
Выбор источника тактирования для USB.
void RCC_ADCClkDivConfig(RCC_ADCClk_TypeDef RCC_ADCClk, uint32_t DivVal, FunctionalState DivState)
Настройка делителя тактового сигнала для выбранного ADC.
RCC_PLLNO_TypeDef
Выходной делитель NO.
void RCC_UARTClkDivConfig(NT_UART_TypeDef *UARTx, uint32_t DivVal, FunctionalState DivState)
Настройка делителя тактового сигнала для выбранного UART.
void RCC_PeriphRstCmd(RCC_PeriphRst_TypeDef RCC_PeriphRst, FunctionalState State)
Вывод из состояния сброса периферийных блоков.
void RCC_SPIClkSel(NT_SPI_TypeDef *SPIx, RCC_SPIClk_TypeDef RCC_SPIClk)
Настройка источника тактового сигнала для выбранного SPI.
RCC_SPIClk_TypeDef
Выбор источника тактирования для SPI.
void RCC_UARTClkCmd(NT_UART_TypeDef *UARTx, FunctionalState State)
Включение тактирования UART.
void RCC_ADCClkCmd(RCC_ADCClk_TypeDef RCC_ADCClk, FunctionalState State)
Включение тактирования ADC.
void RCC_PLLPowerDownCmd(FunctionalState State)
Управление режимом PowerDown PLL.
RCC_PLLNO_TypeDef RCC_PLLNO
OperationStatus RCC_PLLAutoConfig(RCC_PLLRef_TypeDef RCC_PLLRef, uint32_t SysFreq)
Автоматическая конфигурация PLL для получения желаемой системной частоты.
void RCC_USBClkConfig(RCC_USBClk_TypeDef RCC_USBClk, RCC_USBFreq_TypeDef RCC_USBFreq, FunctionalState State)
Настройка источника и включение тактового сигнала для USB.
RCC_USBFreq_TypeDef
Выбор фиксированной частоты на входе CLK_USB.
RCC_PLLRef_TypeDef RCC_PLLRef
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
void RCC_PLLInit(RCC_PLLInit_TypeDef *RCC_PLLInit_Struct)
Инициализирует PLL согласно параметрам структуры RCC_PLLInit_Struct.
OperationStatus RCC_SysClkSel(RCC_SysClk_TypeDef RCC_SysClk)
Выбор источника для системного тактового сигнала.
Это главный заголовочный файл драйвера, обычно включаемый в main.c.
RCC_PeriphRst_TypeDef
Управление сбросом периферийных блоков
RCC_PeriphClk_TypeDef
Управление тактированием периферийных блоков
RCC_SysClk_TypeDef
Выбор источника системной частоты.
void RCC_PLLStructInit(RCC_PLLInit_TypeDef *RCC_PLLInit_Struct)
Заполнение каждого члена структуры RCC_PLLInit_Struct значениями по умолчанию.
void RCC_PLLDeInit(void)
Устанавливает все регистры PLL значениями по умолчанию.
void RCC_SPIClkDivConfig(NT_SPI_TypeDef *SPIx, uint32_t DivVal, FunctionalState DivState)
Настройка делителя тактового сигнала для выбранного SPI.