Browse Source

Use brace initialization

makefile_for_cmsis
heck 2 years ago
parent
commit
c366902937
  1. 175
      src/main.c

175
src/main.c

@ -4,6 +4,8 @@
#include "usb_device.h"
#include "stm32f4xx_hal_cortex.h"
extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
DAC_HandleTypeDef hdac1;
DMA_HandleTypeDef hdma_dac1;
TIM_HandleTypeDef htim2;
@ -11,14 +13,9 @@ TIM_HandleTypeDef htim6;
TIM_HandleTypeDef htim7;
RNG_HandleTypeDef hrng;
extern PCD_HandleTypeDef hpcd_USB_OTG_FS;
void sysclk_init(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = { 0 };
RCC_ClkInitTypeDef RCC_ClkInitStruct = { 0 };
// Enable ALL the clocks
__HAL_RCC_SYSCFG_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
@ -63,32 +60,39 @@ void sysclk_init(void)
// Configure the main internal regulator output voltage
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 4;
RCC_OscInitStruct.PLL.PLLN = 168;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
Error_Handler();
}
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 |
RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
{
// Initializes the RCC Oscillators according to the specified parameters
// in the RCC_OscInitTypeDef structure.
RCC_OscInitTypeDef conf = {
.OscillatorType = RCC_OSCILLATORTYPE_HSE,
.HSEState = RCC_HSE_ON,
.PLL.PLLState = RCC_PLL_ON,
.PLL.PLLSource = RCC_PLLSOURCE_HSE,
.PLL.PLLM = 4,
.PLL.PLLN = 168,
.PLL.PLLP = RCC_PLLP_DIV2,
.PLL.PLLQ = 7,
};
if (HAL_RCC_OscConfig(&conf) != HAL_OK) {
Error_Handler();
}
}
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) {
Error_Handler();
{
// Initializes the CPU, AHB and APB buses clocks
RCC_ClkInitTypeDef conf = {
.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 |
RCC_CLOCKTYPE_PCLK2,
.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK,
.AHBCLKDivider = RCC_SYSCLK_DIV1,
.APB1CLKDivider = RCC_HCLK_DIV4,
.APB2CLKDivider = RCC_HCLK_DIV2,
};
if (HAL_RCC_ClockConfig(&conf, FLASH_LATENCY_5) != HAL_OK) {
Error_Handler();
}
}
}
@ -171,30 +175,37 @@ void gpio_init(void)
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);
{
GPIO_InitTypeDef conf = { 0 };
conf.Pin = GPIO_PIN_0;
conf.Mode = GPIO_MODE_IT_RISING;
conf.Pull = GPIO_NOPULL;
// Button Blue
GPIO_InitTypeDef conf = {
.Pin = GPIO_PIN_0,
.Mode = GPIO_MODE_IT_RISING,
.Pull = GPIO_NOPULL,
.Speed = GPIO_SPEED_LOW,
};
HAL_GPIO_Init(GPIOA, &conf);
}
{
GPIO_InitTypeDef conf = { 0 };
// LED Green
GPIO_InitTypeDef conf = {
.Pin = GPIO_PIN_12,
.Mode = GPIO_MODE_OUTPUT_PP,
.Pull = GPIO_NOPULL,
.Speed = GPIO_SPEED_FREQ_LOW,
};
conf.Pin = GPIO_PIN_12;
conf.Mode = GPIO_MODE_OUTPUT_PP;
conf.Pull = GPIO_NOPULL;
conf.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &conf);
}
{
GPIO_InitTypeDef conf = { 0 };
// DAC1
GPIO_InitTypeDef conf = {
.Pin = GPIO_PIN_4,
.Mode = GPIO_MODE_ANALOG,
.Pull = GPIO_NOPULL,
.Speed = GPIO_SPEED_FREQ_HIGH,
};
conf.Pin = GPIO_PIN_4;
conf.Mode = GPIO_MODE_ANALOG;
conf.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &conf);
}
}
@ -206,9 +217,10 @@ void dac_init(void)
Error_Handler();
}
DAC_ChannelConfTypeDef conf = { 0 };
conf.DAC_Trigger = DAC_TRIGGER_T6_TRGO;
conf.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
DAC_ChannelConfTypeDef conf = {
.DAC_Trigger = DAC_TRIGGER_T6_TRGO,
.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE,
};
if (HAL_DAC_ConfigChannel(&hdac1, &conf, DAC_CHANNEL_1) != HAL_OK) {
Error_Handler();
}
@ -230,12 +242,11 @@ void dma_init(void)
Error_Handler();
}
// Originally that was:
// __HAL_LINKDMA(&hdac1, DMA_Handle1, hdma_dac1);
// Exapanded to:
// hdma_dac1.Parent = &hdac1;
// Originally that was:
// __HAL_LINKDMA(&hdac1, DMA_Handle1, hdma_dac1);
// Exapanded to:
// hdma_dac1.Parent = &hdac1;
hdac1.DMA_Handle1 = &hdma_dac1;
}
// --------------------------------------------------------------------------------------------------
@ -254,17 +265,23 @@ void tim2_init(void)
Error_Handler();
}
TIM_ClockConfigTypeDef sClockSourceConfig = { 0 };
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) {
Error_Handler();
{
TIM_ClockConfigTypeDef conf = {
.ClockSource = TIM_CLOCKSOURCE_INTERNAL,
};
if (HAL_TIM_ConfigClockSource(&htim2, &conf) != HAL_OK) {
Error_Handler();
}
}
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) {
Error_Handler();
{
TIM_MasterConfigTypeDef conf = {
.MasterOutputTrigger = TIM_TRGO_RESET,
.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE,
};
if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &conf) != HAL_OK) {
Error_Handler();
}
}
}
@ -279,11 +296,14 @@ void tim6_init(void)
Error_Handler();
}
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK) {
Error_Handler();
{
TIM_MasterConfigTypeDef conf = {
.MasterOutputTrigger = TIM_TRGO_UPDATE,
.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE,
};
if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &conf) != HAL_OK) {
Error_Handler();
}
}
}
@ -298,11 +318,14 @@ void tim7_init(void)
Error_Handler();
}
TIM_MasterConfigTypeDef sMasterConfig = { 0 };
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) {
Error_Handler();
{
TIM_MasterConfigTypeDef conf = {
.MasterOutputTrigger = TIM_TRGO_RESET,
.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE,
};
if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &conf) != HAL_OK) {
Error_Handler();
}
}
}
@ -324,10 +347,6 @@ void irq_init()
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
}
// --------------------------------------------------------------------------------------------------
// Random Number Generator (RNG)
// --------------------------------------------------------------------------------------------------
void rng_init(void)
{
hrng.Instance = RNG;
@ -364,13 +383,15 @@ void rtos_default_task(void *argument)
void rtos_init(void)
{
const osThreadAttr_t defaultTask_attributes = {
osKernelInitialize();
const osThreadAttr_t conf = {
.name = "defaultTask",
.stack_size = 128 * 4,
.priority = (osPriority_t)osPriorityNormal,
};
osThreadId_t defaultTaskHandle;
defaultTaskHandle = osThreadNew(rtos_default_task, NULL, &defaultTask_attributes);
defaultTaskHandle = osThreadNew(rtos_default_task, NULL, &conf);
osKernelStart();
}
int main(void)
@ -388,8 +409,6 @@ int main(void)
irq_init();
dma_init();
osKernelInitialize();
rtos_init();
osKernelStart();
}

Loading…
Cancel
Save