USART3 enabled with RS485 DE

- 115200 baud
- Rx: PB1
- Tx: PB10
- DE: PB14
master
unicod 1 month ago
parent d06c63fa5c
commit 80728f171c

@ -58,6 +58,7 @@ static void MX_ICACHE_Init(void);
static void MX_TIM5_Init(void);
static void MX_TIM2_Init(void);
static void MX_UART5_Init(void);
static void MX_USART3_UART_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
@ -140,6 +141,7 @@ int main(void)
MX_TIM5_Init();
MX_TIM2_Init();
MX_UART5_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */
LL_TIM_GenerateEvent_UPDATE(TIM2);
LL_TIM_EnableCounter(TIM2);
@ -172,7 +174,6 @@ int main(void)
if (TickChk(&Tick1secRef, 1000)) { // execute every 1s
LD2_Toggle();
static uint8_t cnt = 0;
DispPutDigit(1, 'a'+cnt, 1);
DispPutDigit(2, 'A'+cnt, 0);
cnt = (cnt + 1) % 16;
static uint32_t Trefus = 0;
@ -180,6 +181,7 @@ int main(void)
uint32_t tdif = t - Trefus;
printf("%6luus\n", tdif);
Trefus = t;
LL_USART_TransmitData8(USART3, 'A' + cnt); // direct send without buffer and interrupt
}
static uint32_t Tick100msRef = 0;
@ -189,6 +191,11 @@ int main(void)
DispPutDigit(3, ' ', dot);
}
if (LL_USART_IsActiveFlag_RXNE_RXFNE(USART3)) { // check if data received
char rxch = LL_USART_ReceiveData8(USART3); // direct receive without buffer and interrupt
DispPutDigit(1, rxch, 1);
}
int16_t ch = Uart5_GetByte();
if (ch != -1) { // if data received
char c = ch;
@ -441,6 +448,68 @@ static void MX_UART5_Init(void)
}
/**
* @brief USART3 Initialization Function
* @param None
* @retval None
*/
static void MX_USART3_UART_Init(void)
{
/* USER CODE BEGIN USART3_Init 0 */
/* USER CODE END USART3_Init 0 */
LL_USART_InitTypeDef USART_InitStruct = {0};
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
LL_RCC_SetUSARTClockSource(LL_RCC_USART3_CLKSOURCE_PCLK1);
/* Peripheral clock enable */
LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART3);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB);
/**USART3 GPIO Configuration
PB1 ------> USART3_RX
PB10 ------> USART3_TX
PB14 ------> USART3_DE
*/
GPIO_InitStruct.Pin = LL_GPIO_PIN_1|LL_GPIO_PIN_10|LL_GPIO_PIN_14;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_7;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN USART3_Init 1 */
/* USER CODE END USART3_Init 1 */
USART_InitStruct.PrescalerValue = LL_USART_PRESCALER_DIV1;
USART_InitStruct.BaudRate = 115200;
USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;
USART_InitStruct.StopBits = LL_USART_STOPBITS_1;
USART_InitStruct.Parity = LL_USART_PARITY_NONE;
USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;
USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;
USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;
LL_USART_Init(USART3, &USART_InitStruct);
LL_USART_SetTXFIFOThreshold(USART3, LL_USART_FIFOTHRESHOLD_1_8);
LL_USART_SetRXFIFOThreshold(USART3, LL_USART_FIFOTHRESHOLD_1_8);
LL_USART_EnableDEMode(USART3);
LL_USART_SetDESignalPolarity(USART3, LL_USART_DE_POLARITY_HIGH);
LL_USART_SetDEAssertionTime(USART3, 0);
LL_USART_SetDEDeassertionTime(USART3, 0);
LL_USART_DisableFIFO(USART3);
LL_USART_ConfigAsyncMode(USART3);
LL_USART_Enable(USART3);
/* USER CODE BEGIN USART3_Init 2 */
/* USER CODE END USART3_Init 2 */
}
/**
* @brief GPIO Initialization Function
* @param None
@ -456,9 +525,9 @@ static void MX_GPIO_Init(void)
/* GPIO Ports Clock Enable */
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOC);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOH);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOA);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOD);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB);
/**/
LL_GPIO_ResetOutputPin(GPIOC, SHR_CLK_Pin|SHR_STR_Pin);

@ -48,6 +48,7 @@ Mcu.IP0=BOOTPATH
Mcu.IP1=CORTEX_M33_NS
Mcu.IP10=TIM5
Mcu.IP11=UART5
Mcu.IP12=USART3
Mcu.IP2=DEBUG
Mcu.IP3=ICACHE
Mcu.IP4=MEMORYMAP
@ -56,29 +57,32 @@ Mcu.IP6=PWR
Mcu.IP7=RCC
Mcu.IP8=SYS
Mcu.IP9=TIM2
Mcu.IPNb=12
Mcu.IPNb=13
Mcu.Name=STM32H533RETx
Mcu.Package=LQFP64
Mcu.Pin0=PC14-OSC32_IN(OSC32_IN)
Mcu.Pin1=PC15-OSC32_OUT(OSC32_OUT)
Mcu.Pin10=VP_CORTEX_M33_NS_VS_Hclk
Mcu.Pin11=VP_ICACHE_VS_ICACHE
Mcu.Pin12=VP_PWR_VS_SECSignals
Mcu.Pin13=VP_PWR_VS_LPOM
Mcu.Pin14=VP_SYS_VS_Systick
Mcu.Pin15=VP_TIM2_VS_ClockSourceINT
Mcu.Pin16=VP_TIM5_VS_ClockSourceINT
Mcu.Pin17=VP_BOOTPATH_VS_BOOTPATH
Mcu.Pin18=VP_MEMORYMAP_VS_MEMORYMAP
Mcu.Pin10=PC12
Mcu.Pin11=PD2
Mcu.Pin12=PB8
Mcu.Pin13=VP_CORTEX_M33_NS_VS_Hclk
Mcu.Pin14=VP_ICACHE_VS_ICACHE
Mcu.Pin15=VP_PWR_VS_SECSignals
Mcu.Pin16=VP_PWR_VS_LPOM
Mcu.Pin17=VP_SYS_VS_Systick
Mcu.Pin18=VP_TIM2_VS_ClockSourceINT
Mcu.Pin19=VP_TIM5_VS_ClockSourceINT
Mcu.Pin2=PH0-OSC_IN(PH0)
Mcu.Pin20=VP_BOOTPATH_VS_BOOTPATH
Mcu.Pin21=VP_MEMORYMAP_VS_MEMORYMAP
Mcu.Pin3=PH1-OSC_OUT(PH1)
Mcu.Pin4=PA13(JTMS/SWDIO)
Mcu.Pin5=PA14(JTCK/SWCLK)
Mcu.Pin6=PC11
Mcu.Pin7=PC12
Mcu.Pin8=PD2
Mcu.Pin9=PB8
Mcu.PinsNb=19
Mcu.Pin4=PB1
Mcu.Pin5=PB10
Mcu.Pin6=PB14
Mcu.Pin7=PA13(JTMS/SWDIO)
Mcu.Pin8=PA14(JTCK/SWCLK)
Mcu.Pin9=PC11
Mcu.PinsNb=22
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32H533RETx
@ -100,6 +104,19 @@ PA13(JTMS/SWDIO).Mode=Serial_Wire
PA13(JTMS/SWDIO).Signal=DEBUG_JTMS-SWDIO
PA14(JTCK/SWCLK).Mode=Serial_Wire
PA14(JTCK/SWCLK).Signal=DEBUG_JTCK-SWCLK
PB1.GPIOParameters=GPIO_Speed
PB1.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PB1.Locked=true
PB1.Mode=Asynchronous
PB1.Signal=USART3_RX
PB10.GPIOParameters=GPIO_Speed
PB10.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PB10.Mode=Asynchronous
PB10.Signal=USART3_TX
PB14.GPIOParameters=GPIO_Speed
PB14.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PB14.Mode=Hardware Flow Control (RS485)
PB14.Signal=USART3_DE
PB8.GPIOParameters=GPIO_Label
PB8.GPIO_Label=SHR_DOUT_DISP
PB8.Locked=true
@ -112,13 +129,15 @@ PC11.Signal=GPIO_Output
PC12.Locked=true
PC12.Mode=Asynchronous
PC12.Signal=UART5_TX
PC14-OSC32_IN(OSC32_IN).GPIOParameters=GPIO_Label
PC14-OSC32_IN(OSC32_IN).GPIOParameters=GPIO_Label,PinAttribute
PC14-OSC32_IN(OSC32_IN).GPIO_Label=SHR_CLK
PC14-OSC32_IN(OSC32_IN).Locked=true
PC14-OSC32_IN(OSC32_IN).PinAttribute=Free
PC14-OSC32_IN(OSC32_IN).Signal=GPIO_Output
PC15-OSC32_OUT(OSC32_OUT).GPIOParameters=GPIO_Label
PC15-OSC32_OUT(OSC32_OUT).GPIOParameters=GPIO_Label,PinAttribute
PC15-OSC32_OUT(OSC32_OUT).GPIO_Label=SHR_STR
PC15-OSC32_OUT(OSC32_OUT).Locked=true
PC15-OSC32_OUT(OSC32_OUT).PinAttribute=Free
PC15-OSC32_OUT(OSC32_OUT).Signal=GPIO_Output
PCC.Checker=false
PCC.Line=STM32H5x3
@ -167,7 +186,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-LL-false,2-MX_GPIO_Init-GPIO-false-LL-true,3-MX_ICACHE_Init-ICACHE-false-LL-true,4-MX_TIM5_Init-TIM5-false-LL-true,5-MX_TIM2_Init-TIM2-false-LL-true,6-MX_UART5_Init-UART5-false-LL-true,0-MX_CORTEX_M33_NS_Init-CORTEX_M33_NS-false-LL-true,0-MX_PWR_Init-PWR-false-LL-true
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-LL-false,2-MX_GPIO_Init-GPIO-false-LL-true,3-MX_ICACHE_Init-ICACHE-false-LL-true,4-MX_TIM5_Init-TIM5-false-LL-true,5-MX_TIM2_Init-TIM2-false-LL-true,6-MX_UART5_Init-UART5-false-LL-true,7-MX_USART3_UART_Init-USART3-false-LL-true,0-MX_CORTEX_M33_NS_Init-CORTEX_M33_NS-false-LL-true,0-MX_PWR_Init-PWR-false-LL-true
RCC.ADCFreq_Value=80000000
RCC.AHBFreq_Value=80000000
RCC.APB1Freq_Value=80000000
@ -249,6 +268,11 @@ TIM2.IPParameters=Prescaler
TIM2.Prescaler=39999
TIM5.IPParameters=Prescaler
TIM5.Prescaler=79
USART3.BaudRate=115200
USART3.IPParameters=VirtualMode-Asynchronous,VirtualMode-Hardware Flow Control (RS485),BaudRate,OverSampling
USART3.OverSampling=UART_OVERSAMPLING_16
USART3.VirtualMode-Asynchronous=VM_ASYNC
USART3.VirtualMode-Hardware\ Flow\ Control\ (RS485)=VM_ASYNC
VP_BOOTPATH_VS_BOOTPATH.Mode=BP_Activate
VP_BOOTPATH_VS_BOOTPATH.Signal=BOOTPATH_VS_BOOTPATH
VP_CORTEX_M33_NS_VS_Hclk.Mode=Hclk_Mode

Loading…
Cancel
Save