Browse Source

修改了外设的新版本,现在485_1是usart1,485_2是usart3

master
Lizongdi 2 weeks ago
parent
commit
d8d85ec91a
  1. 42
      32g431.ioc
  2. 1
      Core/Inc/stm32g4xx_it.h
  3. 3
      Core/Inc/usart.h
  4. 35
      Core/Src/gpio.c
  5. 3
      Core/Src/main.c
  6. 15
      Core/Src/stm32g4xx_it.c
  7. 102
      Core/Src/usart.c
  8. 2
      robot

42
32g431.ioc

@ -38,6 +38,7 @@ Mcu.CPN=STM32G431CBU3
Mcu.Family=STM32G4
Mcu.IP0=DMA
Mcu.IP1=FDCAN1
Mcu.IP10=USART3
Mcu.IP2=IWDG
Mcu.IP3=LPUART1
Mcu.IP4=NVIC
@ -46,7 +47,7 @@ Mcu.IP6=SYS
Mcu.IP7=TIM6
Mcu.IP8=USART1
Mcu.IP9=USART2
Mcu.IPNb=10
Mcu.IPNb=11
Mcu.Name=STM32G431C(6-8-B)Ux
Mcu.Package=UFQFPN48
Mcu.Pin0=PF0-OSC_IN
@ -60,14 +61,16 @@ Mcu.Pin15=PA11
Mcu.Pin16=PA12
Mcu.Pin17=PA13
Mcu.Pin18=PA14
Mcu.Pin19=PB3
Mcu.Pin19=PC10
Mcu.Pin2=PA2
Mcu.Pin20=PB4
Mcu.Pin21=PB5
Mcu.Pin22=VP_IWDG_VS_IWDG
Mcu.Pin23=VP_SYS_VS_Systick
Mcu.Pin24=VP_SYS_VS_DBSignals
Mcu.Pin25=VP_TIM6_VS_ClockSourceINT
Mcu.Pin20=PC11
Mcu.Pin21=PB3
Mcu.Pin22=PB4
Mcu.Pin23=PB5
Mcu.Pin24=VP_IWDG_VS_IWDG
Mcu.Pin25=VP_SYS_VS_Systick
Mcu.Pin26=VP_SYS_VS_DBSignals
Mcu.Pin27=VP_TIM6_VS_ClockSourceINT
Mcu.Pin3=PA3
Mcu.Pin4=PA4
Mcu.Pin5=PA5
@ -75,7 +78,7 @@ Mcu.Pin6=PA6
Mcu.Pin7=PA7
Mcu.Pin8=PC4
Mcu.Pin9=PB10
Mcu.PinsNb=26
Mcu.PinsNb=28
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32G431CBUx
@ -96,6 +99,7 @@ NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.TIM6_DAC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA10.Mode=Asynchronous
PA10.Signal=USART1_RX
@ -127,10 +131,11 @@ PA7.GPIOParameters=GPIO_Label
PA7.GPIO_Label=K2
PA7.Locked=true
PA7.Signal=GPIO_Output
PA8.GPIOParameters=PinState,GPIO_Label
PA8.GPIOParameters=GPIO_Speed,PinState,GPIO_Label
PA8.GPIO_Label=RS485_2_DIR
PA8.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PA8.Locked=true
PA8.PinState=GPIO_PIN_SET
PA8.PinState=GPIO_PIN_RESET
PA8.Signal=GPIO_Output
PA9.Locked=true
PA9.Mode=Asynchronous
@ -141,10 +146,11 @@ PB10.Signal=LPUART1_RX
PB11.Locked=true
PB11.Mode=Asynchronous
PB11.Signal=LPUART1_TX
PB12.GPIOParameters=PinState,GPIO_Label
PB12.GPIOParameters=GPIO_Speed,PinState,GPIO_Label
PB12.GPIO_Label=RS485_1_DIR
PB12.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
PB12.Locked=true
PB12.PinState=GPIO_PIN_SET
PB12.PinState=GPIO_PIN_RESET
PB12.Signal=GPIO_Output
PB3.GPIOParameters=GPIO_Label
PB3.GPIO_Label=LED3
@ -158,6 +164,12 @@ PB5.GPIOParameters=GPIO_Label
PB5.GPIO_Label=LED1
PB5.Locked=true
PB5.Signal=GPIO_Output
PC10.Locked=true
PC10.Mode=Asynchronous
PC10.Signal=USART3_TX
PC11.Locked=true
PC11.Mode=Asynchronous
PC11.Signal=USART3_RX
PC4.GPIOParameters=GPIO_Label
PC4.GPIO_Label=K3
PC4.Locked=true
@ -199,7 +211,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_IWDG_Init-IWDG-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM6_Init-TIM6-false-HAL-true,7-MX_FDCAN1_Init-FDCAN1-false-HAL-true,8-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,9-MX_USART2_UART_Init-USART2-false-HAL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_IWDG_Init-IWDG-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM6_Init-TIM6-false-HAL-true,7-MX_FDCAN1_Init-FDCAN1-false-HAL-true,8-MX_LPUART1_UART_Init-LPUART1-false-HAL-true,9-MX_USART3_UART_Init-USART3-false-HAL-true,10-MX_USART2_UART_Init-USART2-false-HAL-true
RCC.ADC12Freq_Value=100000000
RCC.AHBFreq_Value=100000000
RCC.APB1Freq_Value=100000000
@ -254,6 +266,8 @@ USART1.IPParameters=VirtualMode-Asynchronous,BaudRate
USART1.VirtualMode-Asynchronous=VM_ASYNC
USART2.IPParameters=VirtualMode-Asynchronous
USART2.VirtualMode-Asynchronous=VM_ASYNC
USART3.IPParameters=VirtualMode-Asynchronous
USART3.VirtualMode-Asynchronous=VM_ASYNC
VP_IWDG_VS_IWDG.Mode=IWDG_Activate
VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG
VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals

1
Core/Inc/stm32g4xx_it.h

@ -58,6 +58,7 @@ void SysTick_Handler(void);
void DMA1_Channel1_IRQHandler(void);
void FDCAN1_IT0_IRQHandler(void);
void USART1_IRQHandler(void);
void USART3_IRQHandler(void);
void TIM6_DAC_IRQHandler(void);
void LPUART1_IRQHandler(void);
/* USER CODE BEGIN EFP */

3
Core/Inc/usart.h

@ -38,6 +38,8 @@ extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart2;
extern UART_HandleTypeDef huart3;
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
@ -45,6 +47,7 @@ extern UART_HandleTypeDef huart2;
void MX_LPUART1_UART_Init(void);
void MX_USART1_UART_Init(void);
void MX_USART2_UART_Init(void);
void MX_USART3_UART_Init(void);
/* USER CODE BEGIN Prototypes */

35
Core/Src/gpio.c

@ -51,24 +51,17 @@ void MX_GPIO_Init(void)
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, K4_Pin|K5_Pin|K1_Pin|K2_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, K4_Pin|K5_Pin|K1_Pin|K2_Pin
|RS485_2_DIR_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(K3_GPIO_Port, K3_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(RS485_1_DIR_GPIO_Port, RS485_1_DIR_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB, RS485_1_DIR_Pin|LED3_Pin|LED2_Pin|LED1_Pin, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(RS485_2_DIR_GPIO_Port, RS485_2_DIR_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, LED3_Pin|LED2_Pin|LED1_Pin, GPIO_PIN_RESET);
/*Configure GPIO pins : K4_Pin K5_Pin K1_Pin K2_Pin
RS485_2_DIR_Pin */
GPIO_InitStruct.Pin = K4_Pin|K5_Pin|K1_Pin|K2_Pin
|RS485_2_DIR_Pin;
/*Configure GPIO pins : K4_Pin K5_Pin K1_Pin K2_Pin */
GPIO_InitStruct.Pin = K4_Pin|K5_Pin|K1_Pin|K2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
@ -81,8 +74,22 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(K3_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : RS485_1_DIR_Pin LED3_Pin LED2_Pin LED1_Pin */
GPIO_InitStruct.Pin = RS485_1_DIR_Pin|LED3_Pin|LED2_Pin|LED1_Pin;
/*Configure GPIO pin : RS485_1_DIR_Pin */
GPIO_InitStruct.Pin = RS485_1_DIR_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(RS485_1_DIR_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : RS485_2_DIR_Pin */
GPIO_InitStruct.Pin = RS485_2_DIR_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
HAL_GPIO_Init(RS485_2_DIR_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pins : LED3_Pin LED2_Pin LED1_Pin */
GPIO_InitStruct.Pin = LED3_Pin|LED2_Pin|LED1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

3
Core/Src/main.c

@ -101,6 +101,7 @@ int main(void)
MX_TIM6_Init();
MX_FDCAN1_Init();
MX_LPUART1_UART_Init();
MX_USART3_UART_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
@ -111,7 +112,7 @@ int main(void)
#ifdef MEM_POOL_TOTAL_SIZE
RD_INIT();
void Myprint_Init(void);
Myprint_Init();
//Myprint_Init();
#endif
SpoolendInit();
while (1)

15
Core/Src/stm32g4xx_it.c

@ -59,6 +59,7 @@ extern FDCAN_HandleTypeDef hfdcan1;
extern DMA_HandleTypeDef hdma_usart1_tx;
extern UART_HandleTypeDef hlpuart1;
extern UART_HandleTypeDef huart1;
extern UART_HandleTypeDef huart3;
extern TIM_HandleTypeDef htim6;
/* USER CODE BEGIN EV */
@ -244,6 +245,20 @@ void USART1_IRQHandler(void)
/* USER CODE END USART1_IRQn 1 */
}
/**
* @brief This function handles USART3 global interrupt / USART3 wake-up interrupt through EXTI line 28.
*/
void USART3_IRQHandler(void)
{
/* USER CODE BEGIN USART3_IRQn 0 */
/* USER CODE END USART3_IRQn 0 */
HAL_UART_IRQHandler(&huart3);
/* USER CODE BEGIN USART3_IRQn 1 */
/* USER CODE END USART3_IRQn 1 */
}
/**
* @brief This function handles TIM6 global interrupt, DAC1 and DAC3 channel underrun error interrupts.
*/

102
Core/Src/usart.c

@ -27,6 +27,7 @@
UART_HandleTypeDef hlpuart1;
UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
UART_HandleTypeDef huart3;
DMA_HandleTypeDef hdma_usart1_tx;
/* LPUART1 init function */
@ -159,6 +160,50 @@ void MX_USART2_UART_Init(void)
/* USER CODE END USART2_Init 2 */
}
/* USART3 init function */
void MX_USART3_UART_Init(void)
{
/* USER CODE BEGIN USART3_Init 0 */
/* USER CODE END USART3_Init 0 */
/* USER CODE BEGIN USART3_Init 1 */
/* USER CODE END USART3_Init 1 */
huart3.Instance = USART3;
huart3.Init.BaudRate = 115200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.Mode = UART_MODE_TX_RX;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart3.Init.OverSampling = UART_OVERSAMPLING_16;
huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold(&huart3, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold(&huart3, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode(&huart3) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN USART3_Init 2 */
/* USER CODE END USART3_Init 2 */
}
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
@ -292,6 +337,43 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART2_MspInit 1 */
}
else if(uartHandle->Instance==USART3)
{
/* USER CODE BEGIN USART3_MspInit 0 */
/* USER CODE END USART3_MspInit 0 */
/** Initializes the peripherals clocks
*/
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART3;
PeriphClkInit.Usart3ClockSelection = RCC_USART3CLKSOURCE_PCLK1;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
Error_Handler();
}
/* USART3 clock enable */
__HAL_RCC_USART3_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
/**USART3 GPIO Configuration
PC10 ------> USART3_TX
PC11 ------> USART3_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = GPIO_AF7_USART3;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* USART3 interrupt Init */
HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspInit 1 */
/* USER CODE END USART3_MspInit 1 */
}
}
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
@ -358,6 +440,26 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
/* USER CODE END USART2_MspDeInit 1 */
}
else if(uartHandle->Instance==USART3)
{
/* USER CODE BEGIN USART3_MspDeInit 0 */
/* USER CODE END USART3_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_USART3_CLK_DISABLE();
/**USART3 GPIO Configuration
PC10 ------> USART3_TX
PC11 ------> USART3_RX
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11);
/* USART3 interrupt Deinit */
HAL_NVIC_DisableIRQ(USART3_IRQn);
/* USER CODE BEGIN USART3_MspDeInit 1 */
/* USER CODE END USART3_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */

2
robot

@ -1 +1 @@
Subproject commit 39516883b210d0aa525ce1872b49c4b35e6eb27b
Subproject commit 7b2717567a718df89f0a241243b2db676460580e
Loading…
Cancel
Save