diff --git a/Core/Src/main.c b/Core/Src/main.c index e67afdc..6c4f4d8 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -110,9 +110,22 @@ int main(void) /* Infinite loop */ /* USER CODE BEGIN WHILE */ + HAL_Delay(3000); // Attends 3 secondes après le boot + char test[] = "Hello from STM32\r\n"; + CDC_Transmit_FS((uint8_t*)test, strlen(test)); while (1) { /* USER CODE END WHILE */ + // LED ON + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET); + char msg_on[] = "LED ON\r\n"; + while(CDC_Transmit_FS((uint8_t*)msg_on, strlen(msg_on)) == USBD_BUSY); + HAL_Delay(1000); + + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET); + char msg_off[] = "LED OFF\r\n"; + while(CDC_Transmit_FS((uint8_t*)msg_off, strlen(msg_off)) == USBD_BUSY); + HAL_Delay(1000); /* USER CODE BEGIN 3 */ } @@ -415,7 +428,6 @@ static void MX_TIM8_Init(void) /* USER CODE END TIM8_Init 0 */ - TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_OC_InitTypeDef sConfigOC = {0}; TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0}; @@ -430,15 +442,6 @@ static void MX_TIM8_Init(void) htim8.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim8.Init.RepetitionCounter = 0; htim8.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; - if (HAL_TIM_Base_Init(&htim8) != HAL_OK) - { - Error_Handler(); - } - sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; - if (HAL_TIM_ConfigClockSource(&htim8, &sClockSourceConfig) != HAL_OK) - { - Error_Handler(); - } if (HAL_TIM_PWM_Init(&htim8) != HAL_OK) { Error_Handler(); @@ -457,10 +460,6 @@ static void MX_TIM8_Init(void) sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET; sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET; - if (HAL_TIM_PWM_ConfigChannel(&htim8, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) - { - Error_Handler(); - } if (HAL_TIM_PWM_ConfigChannel(&htim8, &sConfigOC, TIM_CHANNEL_2) != HAL_OK) { Error_Handler(); @@ -505,7 +504,7 @@ static void MX_GPIO_Init(void) __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_6, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_RESET); @@ -526,8 +525,8 @@ static void MX_GPIO_Init(void) GPIO_InitStruct.Alternate = GPIO_AF15_EVENTOUT; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /*Configure GPIO pin : PB0 */ - GPIO_InitStruct.Pin = GPIO_PIN_0; + /*Configure GPIO pins : PB0 PB6 */ + GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; diff --git a/Core/Src/stm32g4xx_hal_msp.c b/Core/Src/stm32g4xx_hal_msp.c index 9f9d3c2..0a2c442 100644 --- a/Core/Src/stm32g4xx_hal_msp.c +++ b/Core/Src/stm32g4xx_hal_msp.c @@ -176,17 +176,7 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) /* USER CODE BEGIN TIM1_MspInit 1 */ /* USER CODE END TIM1_MspInit 1 */ - } - else if(htim_base->Instance==TIM8) - { - /* USER CODE BEGIN TIM8_MspInit 0 */ - /* USER CODE END TIM8_MspInit 0 */ - /* Peripheral clock enable */ - __HAL_RCC_TIM8_CLK_ENABLE(); - /* USER CODE BEGIN TIM8_MspInit 1 */ - - /* USER CODE END TIM8_MspInit 1 */ } } @@ -259,6 +249,29 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder) } +/** +* @brief TIM_PWM MSP Initialization +* This function configures the hardware resources used in this example +* @param htim_pwm: TIM_PWM handle pointer +* @retval None +*/ +void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm) +{ + if(htim_pwm->Instance==TIM8) + { + /* USER CODE BEGIN TIM8_MspInit 0 */ + + /* USER CODE END TIM8_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM8_CLK_ENABLE(); + /* USER CODE BEGIN TIM8_MspInit 1 */ + + /* USER CODE END TIM8_MspInit 1 */ + + } + +} + void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) { GPIO_InitTypeDef GPIO_InitStruct = {0}; @@ -291,16 +304,8 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim) __HAL_RCC_GPIOB_CLK_ENABLE(); /**TIM8 GPIO Configuration - PB6 ------> TIM8_CH1 PB8-BOOT0 ------> TIM8_CH2 */ - GPIO_InitStruct.Pin = GPIO_PIN_6; - GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_NOPULL; - GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; - GPIO_InitStruct.Alternate = GPIO_AF5_TIM8; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - GPIO_InitStruct.Pin = GPIO_PIN_8; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; @@ -333,17 +338,6 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) /* USER CODE END TIM1_MspDeInit 1 */ } - else if(htim_base->Instance==TIM8) - { - /* USER CODE BEGIN TIM8_MspDeInit 0 */ - - /* USER CODE END TIM8_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_TIM8_CLK_DISABLE(); - /* USER CODE BEGIN TIM8_MspDeInit 1 */ - - /* USER CODE END TIM8_MspDeInit 1 */ - } } @@ -396,6 +390,28 @@ void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder) } +/** +* @brief TIM_PWM MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param htim_pwm: TIM_PWM handle pointer +* @retval None +*/ +void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm) +{ + if(htim_pwm->Instance==TIM8) + { + /* USER CODE BEGIN TIM8_MspDeInit 0 */ + + /* USER CODE END TIM8_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM8_CLK_DISABLE(); + /* USER CODE BEGIN TIM8_MspDeInit 1 */ + + /* USER CODE END TIM8_MspDeInit 1 */ + } + +} + /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/pcb_odo.ioc b/pcb_odo.ioc index 79a750b..603d0f4 100644 --- a/pcb_odo.ioc +++ b/pcb_odo.ioc @@ -11,6 +11,7 @@ CAD.formats= CAD.pinconfig= CAD.provider= File.Version=6 +GPIO.groupedBy=Group By Peripherals KeepUserPlacement=false Mcu.CPN=STM32G491KEU6 Mcu.Family=STM32G4 @@ -46,8 +47,7 @@ Mcu.Pin22=PB8-BOOT0 Mcu.Pin23=VP_SYS_VS_Systick Mcu.Pin24=VP_SYS_VS_DBSignals Mcu.Pin25=VP_TIM1_VS_ClockSourceINT -Mcu.Pin26=VP_TIM8_VS_ClockSourceINT -Mcu.Pin27=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS +Mcu.Pin26=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS Mcu.Pin3=PA3 Mcu.Pin4=PA4 Mcu.Pin5=PA5 @@ -55,7 +55,7 @@ Mcu.Pin6=PA6 Mcu.Pin7=PA7 Mcu.Pin8=PB0 Mcu.Pin9=PA8 -Mcu.PinsNb=28 +Mcu.PinsNb=27 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32G491KEUx @@ -116,7 +116,7 @@ PB4.Signal=S_TIM3_CH1 PB5.Locked=true PB5.Signal=EVENTOUT PB6.Locked=true -PB6.Signal=S_TIM8_CH1 +PB6.Signal=GPIO_Output PB7.Locked=true PB7.Signal=I2C1_SDA PB8-BOOT0.Locked=true @@ -204,8 +204,6 @@ SH.S_TIM3_CH1.0=TIM3_CH1,Encoder_Interface SH.S_TIM3_CH1.ConfNb=1 SH.S_TIM3_CH2.0=TIM3_CH2,Encoder_Interface SH.S_TIM3_CH2.ConfNb=1 -SH.S_TIM8_CH1.0=TIM8_CH1,PWM Generation1 CH1 -SH.S_TIM8_CH1.ConfNb=1 SH.S_TIM8_CH2.0=TIM8_CH2,PWM Generation2 CH2 SH.S_TIM8_CH2.ConfNb=1 TIM1.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE @@ -214,9 +212,8 @@ TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 TIM1.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,PeriodNoDither,AutoReloadPreload TIM1.PeriodNoDither=630 TIM8.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_ENABLE -TIM8.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1 TIM8.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 -TIM8.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,PeriodNoDither,AutoReloadPreload +TIM8.IPParameters=Channel-PWM Generation2 CH2,PeriodNoDither,AutoReloadPreload TIM8.PeriodNoDither=630 USB_DEVICE.CLASS_NAME_FS=CDC USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS @@ -228,8 +225,6 @@ VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick VP_TIM1_VS_ClockSourceINT.Mode=Internal VP_TIM1_VS_ClockSourceINT.Signal=TIM1_VS_ClockSourceINT -VP_TIM8_VS_ClockSourceINT.Mode=Internal -VP_TIM8_VS_ClockSourceINT.Signal=TIM8_VS_ClockSourceINT VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS board=custom