source: trunk/firmware/CubeMX/Src/usart.c@ 3

Last change on this file since 3 was 1, checked in by f.jahn, 3 years ago
File size: 4.4 KB
RevLine 
[1]1/* USER CODE BEGIN Header */
2/**
3 ******************************************************************************
4 * @file usart.c
5 * @brief This file provides code for the configuration
6 * of the USART instances.
7 ******************************************************************************
8 * @attention
9 *
10 * Copyright (c) 2022 STMicroelectronics.
11 * All rights reserved.
12 *
13 * This software is licensed under terms that can be found in the LICENSE file
14 * in the root directory of this software component.
15 * If no LICENSE file comes with this software, it is provided AS-IS.
16 *
17 ******************************************************************************
18 */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "usart.h"
22
23/* USER CODE BEGIN 0 */
24
25/* USER CODE END 0 */
26
27UART_HandleTypeDef huart1;
28
29/* USART1 init function */
30
31void MX_USART1_UART_Init(void)
32{
33
34 /* USER CODE BEGIN USART1_Init 0 */
35
36 /* USER CODE END USART1_Init 0 */
37
38 /* USER CODE BEGIN USART1_Init 1 */
39
40 /* USER CODE END USART1_Init 1 */
41 huart1.Instance = USART1;
42 huart1.Init.BaudRate = 115200;
43 huart1.Init.WordLength = UART_WORDLENGTH_9B;
44 huart1.Init.StopBits = UART_STOPBITS_1;
45 huart1.Init.Parity = UART_PARITY_EVEN;
46 huart1.Init.Mode = UART_MODE_TX_RX;
47 huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
48 huart1.Init.OverSampling = UART_OVERSAMPLING_16;
49 huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
50 huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
51 huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
52 if (HAL_RS485Ex_Init(&huart1, UART_DE_POLARITY_HIGH, 0, 0) != HAL_OK)
53 {
54 Error_Handler();
55 }
56 if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
57 {
58 Error_Handler();
59 }
60 if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
61 {
62 Error_Handler();
63 }
64 if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK)
65 {
66 Error_Handler();
67 }
68 /* USER CODE BEGIN USART1_Init 2 */
69
70 /* USER CODE END USART1_Init 2 */
71
72}
73
74void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
75{
76
77 GPIO_InitTypeDef GPIO_InitStruct = {0};
78 RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
79 if(uartHandle->Instance==USART1)
80 {
81 /* USER CODE BEGIN USART1_MspInit 0 */
82
83 /* USER CODE END USART1_MspInit 0 */
84
85 /** Initializes the peripherals clocks
86 */
87 PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USART1;
88 PeriphClkInit.Usart1ClockSelection = RCC_USART1CLKSOURCE_HSI;
89 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
90 {
91 Error_Handler();
92 }
93
94 /* USART1 clock enable */
95 __HAL_RCC_USART1_CLK_ENABLE();
96
97 __HAL_RCC_GPIOA_CLK_ENABLE();
98 /**USART1 GPIO Configuration
99 PA9 ------> USART1_TX
100 PA10 ------> USART1_RX
101 PA12 [PA10] ------> USART1_DE
102 */
103 GPIO_InitStruct.Pin = RS485_D_Pin|RS485_DE_Pin;
104 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
105 GPIO_InitStruct.Pull = GPIO_NOPULL;
106 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
107 GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
108 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
109
110 GPIO_InitStruct.Pin = RS485_R_Pin;
111 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
112 GPIO_InitStruct.Pull = GPIO_PULLUP;
113 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
114 GPIO_InitStruct.Alternate = GPIO_AF1_USART1;
115 HAL_GPIO_Init(RS485_R_GPIO_Port, &GPIO_InitStruct);
116
117 /* USART1 interrupt Init */
118 HAL_NVIC_SetPriority(USART1_IRQn, 3, 0);
119 HAL_NVIC_EnableIRQ(USART1_IRQn);
120 /* USER CODE BEGIN USART1_MspInit 1 */
121
122 /* USER CODE END USART1_MspInit 1 */
123 }
124}
125
126void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
127{
128
129 if(uartHandle->Instance==USART1)
130 {
131 /* USER CODE BEGIN USART1_MspDeInit 0 */
132
133 /* USER CODE END USART1_MspDeInit 0 */
134 /* Peripheral clock disable */
135 __HAL_RCC_USART1_CLK_DISABLE();
136
137 /**USART1 GPIO Configuration
138 PA9 ------> USART1_TX
139 PA10 ------> USART1_RX
140 PA12 [PA10] ------> USART1_DE
141 */
142 HAL_GPIO_DeInit(GPIOA, RS485_D_Pin|RS485_R_Pin|RS485_DE_Pin);
143
144 /* USART1 interrupt Deinit */
145 HAL_NVIC_DisableIRQ(USART1_IRQn);
146 /* USER CODE BEGIN USART1_MspDeInit 1 */
147
148 /* USER CODE END USART1_MspDeInit 1 */
149 }
150}
151
152/* USER CODE BEGIN 1 */
153
154/* USER CODE END 1 */
Note: See TracBrowser for help on using the repository browser.