Обновлены шапки и по мелочи

This commit is contained in:
2025-12-28 14:06:19 +03:00
parent f3e76e105a
commit 8b930ebe12
12 changed files with 523 additions and 251 deletions

View File

@@ -43,17 +43,17 @@ void Error_Handler(void);
/* UART */
#define USE_UART0 0 /*!< Использовать UART0 */
#define USE_UART1 0 /*!< Использовать UART1 */
#define USE_UART1 1 /*!< Использовать UART1 */
/* Timers */
#define USE_TMR0 0 /*!< Использовать Таймер 0 */
#define USE_TMR1 0 /*!< Использовать Таймер 1 */
#define USE_TMR2 0 /*!< Использовать Таймер 2 */
#define USE_TMR0 1 /*!< Использовать Таймер 0 */
#define USE_TMR1 1 /*!< Использовать Таймер 1 */
#define USE_TMR2 1 /*!< Использовать Таймер 2 */
#define USE_TMR3 0 /*!< Использовать Таймер 3 */
/* ADC */
#define USE_ADC_SEQ0 0 /*!< Использовать Секвенсор 0 */
#define USE_ADC_SEQ1 0 /*!< Использовать Секвенсор 1 */
#define USE_ADC_SEQ1 1 /*!< Использовать Секвенсор 1 */
#define USE_ADC_DC0 0 /*!< Использовать Компаратор 0 */
#define USE_ADC_DC1 0 /*!< Использовать Компаратор 1 */
#define USE_ADC_DC2 0 /*!< Использовать Компаратор 2 */
@@ -75,7 +75,7 @@ void Error_Handler(void);
*/
static RCU_PLL_Ref_TypeDef SYSCLK_Oscil_Type = RCU_PLL_Ref_OSEClk;
/** @brief Желаемая частота тактирования МК */
/** @brief Желаемая частота тактирования МК в МГц*/
#define SYSCLK_CORE_CLOCK_MHZ 100
/** @brief Частота тиков uwTick тактирования МК */
@@ -89,7 +89,7 @@ static SYSCLK_TickHz_TypeDef SYSCLK_TickType = SYSCLK_Tick_1ms;
/** @brief Конфигурации пинов порта GPIOA */
static GPIO_Init_TypeDef gpioa_config[] = {
// Пин, Режим, Выходной режим, Входной режим, Подтяжка, Нагрузка/Скорость
// Pin, Mode, OutMode, InMode, PullMode, DriveMode
{ GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
{ GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
{ GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
@@ -110,7 +110,7 @@ static GPIO_Init_TypeDef gpioa_config[] = {
/** @brief Конфигурации пинов порта GPIOB */
static GPIO_Init_TypeDef gpiob_config[] = {
// Пин, Режим, Выходной режим, Входной режим, Подтяжка, Нагрузка/Скорость
// Pin, Mode, OutMode, InMode, PullMode, DriveMode
{ GPIO_Pin_0, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
{ GPIO_Pin_1, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
{ GPIO_Pin_2, GPIO_PinMode_Unused, GPIO_OutMode_PP, GPIO_InMode_Schmitt, GPIO_PullMode_Disable, GPIO_DriveMode_HighFast },
@@ -134,18 +134,18 @@ static GPIO_Init_TypeDef gpiob_config[] = {
//-- UART Конфигурации --------------------------------------------------------
#if USE_UART0==1
static UART_ExtInit_TypeDef uart0_config = {
//Стоп биты, Четность, Длина посылки, Скорость, FIFO, Направление работы
//StopBit, ParityBit, DataWidth, BaudRate, FIFO, Direction
UART_StopBit_1, UART_ParityBit_Disable, UART_DataWidth_8, 115200, DISABLE, UART_Direction_RxTx,
//Rx Коллбек Tx Коллбек Idle Коллбек Error Коллбек
//RxCallback TxCallback IdleCallback ErrCallback
NULL, NULL, NULL, NULL
};
#endif
#if USE_UART1==1
static UART_ExtInit_TypeDef uart1_config = {
//Стоп биты, Четность, Длина посылки, Скорость, FIFO, Направление работы
//StopBit, ParityBit, DataWidth, BaudRate, FIFO, Direction
UART_StopBit_1, UART_ParityBit_Disable, UART_DataWidth_8, 115200, DISABLE, UART_Direction_RxTx,
//Rx Коллбек Tx Коллбек Idle Коллбек Error Коллбек
//RxCallback TxCallback IdleCallback ErrCallback
NULL, NULL, NULL, NULL
};
#endif
@@ -153,135 +153,156 @@ static UART_ExtInit_TypeDef uart1_config = {
//-- TMR Конфигурации ---------------------------------------------------------
/** @note Макросы для задания периода:
* - LOAD(Period, Prescaler) - период в тиках и прескалер*
* - FREQ_HZ(Hz) - период таймера в Герцах
* - PERIOD_US(us) - период в микросекундах
* * Т.к. аппаратного прескалера нет, используется программный.
* Получить тики будто бы они с прескалером можно функциями TMR_Get_Cnt, TMR_Get_Period
*/
#if USE_TMR0==1
static TMR_ExtInit_TypeDef tmr0_config = {
//Частота Clk МГц, Период обновления
//SystemCoreClock, Period Update
SYSCLK_CORE_CLOCK_MHZ, LOAD(0xFFFFFFFF, SYSCLK_CORE_CLOCK_MHZ-1),
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
//IT ADCSOC DMAReq ExtInput
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
};
#endif
#if USE_TMR1==1
static TMR_ExtInit_TypeDef tmr1_config = {
//Частота Clk МГц, Период обновления
//SystemCoreClock, Period Update
SYSCLK_CORE_CLOCK_MHZ, FREQ_HZ(10),
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
//IT ADCSOC DMAReq ExtInput
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
};
#endif
#if USE_TMR2==1
static TMR_ExtInit_TypeDef tmr2_config = {
//Частота Clk МГц, Период обновления
SYSCLK_CORE_CLOCK_MHZ, PERIOD_MKS(1000000),
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
ENABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
//SystemCoreClock, Period Update
SYSCLK_CORE_CLOCK_MHZ, PERIOD_US(1000000),
//IT ADCSOC DMAReq ExtInput
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
};
#endif
#if USE_TMR3==1
static TMR_Init_TypeDef tmr3_config = {
//Частота Clk МГц, Период обновления
SYSCLK_CORE_CLOCK_MHZ, PERIOD_MKS(1000),
//Прерывания Запуск конверсии АЦП Реквест DMA Внешнее тактирование
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
//SystemCoreClock, Period Update
SYSCLK_CORE_CLOCK_MHZ, PERIOD_US(1000),
//IT ADCSOC DMAReq ExtInput
DISABLE, DISABLE, DISABLE, TMR_ExtInput_Disable
};
#endif
//-- ADC SEQ Конфигурации -----------------------------------------------------
//-- ADC Конфигурации -----------------------------------------------------
/** @brief Источник тактирования АЦП */
static RCU_PeriphClk_TypeDef ADC_ClockSource = RCU_PeriphClk_PLLClk;
/** @brief Желаемая частота тактирования АЦП в МГц*/
static float ADC_ClockMHz = 12.5;
/** @brief Пины каких каналов инициализировать для АЦП */
static ADC_ChannelEnableTypeDef adc_ch_config = {
//Channel 0, Channel 1, Channel 2, Channel 3
ENABLE, ENABLE, ENABLE, ENABLE,
};
//-- ADC SEQ Конфигурации -----------------------------------------------------
#if USE_ADC_SEQ0==1
static ADC_SEQ_ExtInit_TypeDef adc_seq0_config = {
//Событие запуска секвенсора, Разрешение программного запуска
//StartEvent, SWStartEn
ADC_SEQ_StartEvent_SwReq, ENABLE,
//Выбор каналов для запросов секвенсора
//Req[0], Req[1], Req[2], Req[3]
ADC_CH_Num_0, ADC_CH_Num_1, ADC_CH_Num_2, ADC_CH_Num_3,
//Последний запрос, Усреднение запросов, Усреднение запросов
//ReqMax, ReqAverage, ReqAverageEn
ADC_SEQ_ReqNum_1, ADC_SEQ_Average_2, DISABLE,
//Кол-во рестартов секвенсора, Усреднение рестартов, Задержка между рестартами (в тиках ADC_ClockSource/2)
0, DISABLE, 0,
//Разрешение каналов цифровых компараторов
DISABLE, DISABLE, DISABLE, DISABLE,
//Настройка DMA FIFO, Разрешение DMA
//RestartCount, RestartAverageEn, RestartTimer (в тиках ADC_ClockMHz)
0, DISABLE, 0,
//DCEn[0], DCEn[1], DCEn[2], DCEn[3]
DISABLE, DISABLE, DISABLE, DISABLE,
//DMAFIFOLevel, DMAEn
ADC_SEQ_DMAFIFOLevel_1, DISABLE,
//Прерывания, Кол-во рестартов для прерывания Циклический буфер
ENABLE, 0, ENABLE,
//SEQ Complete Коллбек, BuffHalf Коллбек, BuffFull Коллбек, Error коллбек
NULL, NULL, NULL, NULL,
//IT, ITCount BufferCircular
ENABLE, 0, ENABLE,
//SEQCpltCallback, BuffHalfCallback, BuffFullCallback, ErrorCallback
NULL, NULL, NULL, NULL,
};
#endif
#if USE_ADC_SEQ1==1
static ADC_SEQ_ExtInit_TypeDef adc_seq1_config = {
//Событие запуска секвенсора, Разрешение программного запуска
//StartEvent, SWStartEn
ADC_SEQ_StartEvent_SwReq, ENABLE,
//Выбор каналов для запросов секвенсора
ADC_CH_Num_2, ADC_CH_Num_3, ADC_CH_Num_2, ADC_CH_Num_3,
//Последний запрос, Усреднение запросов, Усреднение запросов
//Req[0], Req[1], Req[2], Req[3]
ADC_CH_Num_0, ADC_CH_Num_1, ADC_CH_Num_2, ADC_CH_Num_3,
//ReqMax, ReqAverage, ReqAverageEn
ADC_SEQ_ReqNum_1, ADC_SEQ_Average_2, DISABLE,
//Кол-во рестартов секвенсора, Усреднение рестартов, Задержка между рестартами (в тиках ADC_ClockSource/2)
0, DISABLE, 0,
//Разрешение каналов цифровых компараторов
DISABLE, DISABLE, DISABLE, DISABLE,
//Настройка DMA FIFO, Разрешение DMA
//RestartCount, RestartAverageEn, RestartTimer (в тиках ADC_ClockMHz)
0, DISABLE, 0,
//DCEn[0], DCEn[1], DCEn[2], DCEn[3]
DISABLE, DISABLE, DISABLE, DISABLE,
//DMAFIFOLevel, DMAEn
ADC_SEQ_DMAFIFOLevel_1, DISABLE,
//Прерывания, Кол-во рестартов для прерывания Циклический буфер
ENABLE, 0, ENABLE,
//SEQ Complete Коллбек, BuffHalf Коллбек, BuffFull Коллбек, Error коллбек
NULL, NULL, NULL, NULL,
//IT, ITCount BufferCircular
ENABLE, 0, ENABLE,
//SEQCpltCallback, BuffHalfCallback, BuffFullCallback, ErrorCallback
NULL, NULL, NULL, NULL,
};
#endif
//-- ADC DC Конфигурации ------------------------------------------------------
#if USE_ADC_DC0==1
static ADC_DC_ExtInit_TypeDef adc_dc0_config = {
//Включение выхода компаратора
//DCOutput
DISABLE,
//Нижний порог, Верхний порог
//ThresholdLow, ThresholdHigh
0, 0,
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
//Source, Channel, Mode, Condition
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
//DC Triggered Коллбек, Error коллбек
NULL, NULL
//IT
DISABLE,
//DC_TrigCallback, ErrorCallback
NULL, NULL
};
#endif
#if USE_ADC_DC1==1
static ADC_DC_ExtInit_TypeDef adc_dc1_config = {
//Включение выхода компаратора
//DCOutput
DISABLE,
//Нижний порог, Верхний порог
//ThresholdLow, ThresholdHigh
0, 0,
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
ADC_DC_Source_EOC, ADC_CH_Num_2, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
//DC Triggered Коллбек, Error коллбек
NULL, NULL
//Source, Channel, Mode, Condition
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
//IT
DISABLE,
//DC_TrigCallback, ErrorCallback
NULL, NULL
};
#endif
#if USE_ADC_DC2==1
static ADC_DC_ExtInit_TypeDef adc_dc2_config = {
//Включение выхода компаратора
//DCOutput
DISABLE,
//Нижний порог, Верхний порог
//ThresholdLow, ThresholdHigh
0, 0,
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
ADC_DC_Source_EOC, ADC_CH_Num_3, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
//DC Triggered Коллбек, Error коллбек
NULL, NULL
//Source, Channel, Mode, Condition
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
//IT
DISABLE,
//DC_TrigCallback, ErrorCallback
NULL, NULL
};
#endif
#if USE_ADC_DC3==1
static ADC_DC_ExtInit_TypeDef adc_dc3_config = {
//Включение выхода компаратора
//DCOutput
DISABLE,
//Нижний порог, Верхний порог
//ThresholdLow, ThresholdHigh
0, 0,
//Запуск измерения, Канал, Режим срабатывания, Условие срабатывания
ADC_DC_Source_EOC, ADC_CH_Num_4, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
//DC Triggered Коллбек, Error коллбек
NULL, NULL
//Source, Channel, Mode, Condition
ADC_DC_Source_EOC, ADC_CH_Num_1, ADC_DC_Mode_Multiple, ADC_DC_Condition_Low,
//IT
DISABLE,
//DC_TrigCallback, ErrorCallback
NULL, NULL
};
#endif