Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2 | Rev 9 | ||
---|---|---|---|
Line 4... | Line 4... | ||
4 | * @author MCD Application Team |
4 | * @author MCD Application Team |
5 | * @brief USART LL module driver. |
5 | * @brief USART LL module driver. |
6 | ****************************************************************************** |
6 | ****************************************************************************** |
7 | * @attention |
7 | * @attention |
8 | * |
8 | * |
9 | * <h2><center>© COPYRIGHT(c) 2016 STMicroelectronics</center></h2> |
9 | * <h2><center>© Copyright (c) 2016 STMicroelectronics. |
- | 10 | * All rights reserved.</center></h2> |
|
10 | * |
11 | * |
11 | * Redistribution and use in source and binary forms, with or without modification, |
12 | * This software component is licensed by ST under BSD 3-Clause license, |
12 | * are permitted provided that the following conditions are met: |
13 | * the "License"; You may not use this file except in compliance with the |
13 | * 1. Redistributions of source code must retain the above copyright notice, |
- | |
14 | * this list of conditions and the following disclaimer. |
- | |
15 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
- | |
16 | * this list of conditions and the following disclaimer in the documentation |
- | |
17 | * and/or other materials provided with the distribution. |
14 | * License. You may obtain a copy of the License at: |
18 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
- | |
19 | * may be used to endorse or promote products derived from this software |
15 | * opensource.org/licenses/BSD-3-Clause |
20 | * without specific prior written permission. |
- | |
21 | * |
- | |
22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
- | |
23 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- | |
24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
- | |
25 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
- | |
26 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
- | |
27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
- | |
28 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
- | |
29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
- | |
30 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
- | |
31 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- | |
32 | * |
16 | * |
33 | ****************************************************************************** |
17 | ****************************************************************************** |
34 | */ |
18 | */ |
- | 19 | ||
35 | #if defined(USE_FULL_LL_DRIVER) |
20 | #if defined(USE_FULL_LL_DRIVER) |
36 | 21 | ||
37 | /* Includes ------------------------------------------------------------------*/ |
22 | /* Includes ------------------------------------------------------------------*/ |
38 | #include "stm32f1xx_ll_usart.h" |
23 | #include "stm32f1xx_ll_usart.h" |
39 | #include "stm32f1xx_ll_rcc.h" |
24 | #include "stm32f1xx_ll_rcc.h" |
Line 71... | Line 56... | ||
71 | * @{ |
56 | * @{ |
72 | */ |
57 | */ |
73 | 58 | ||
74 | /* __BAUDRATE__ The maximum Baud Rate is derived from the maximum clock available |
59 | /* __BAUDRATE__ The maximum Baud Rate is derived from the maximum clock available |
75 | * divided by the smallest oversampling used on the USART (i.e. 8) */ |
60 | * divided by the smallest oversampling used on the USART (i.e. 8) */ |
76 | #define IS_LL_USART_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) <= 10000000U) |
61 | #define IS_LL_USART_BAUDRATE(__BAUDRATE__) ((__BAUDRATE__) <= 4500000U) |
- | 62 | ||
- | 63 | /* __VALUE__ In case of oversampling by 16 and 8, BRR content must be greater than or equal to 16d. */ |
|
- | 64 | #define IS_LL_USART_BRR_MIN(__VALUE__) ((__VALUE__) >= 16U) |
|
- | 65 | ||
- | 66 | /* __VALUE__ BRR content must be lower than or equal to 0xFFFF. */ |
|
- | 67 | #define IS_LL_USART_BRR_MAX(__VALUE__) ((__VALUE__) <= 0x0000FFFFU) |
|
77 | 68 | ||
78 | #define IS_LL_USART_DIRECTION(__VALUE__) (((__VALUE__) == LL_USART_DIRECTION_NONE) \ |
69 | #define IS_LL_USART_DIRECTION(__VALUE__) (((__VALUE__) == LL_USART_DIRECTION_NONE) \ |
79 | || ((__VALUE__) == LL_USART_DIRECTION_RX) \ |
70 | || ((__VALUE__) == LL_USART_DIRECTION_RX) \ |
80 | || ((__VALUE__) == LL_USART_DIRECTION_TX) \ |
71 | || ((__VALUE__) == LL_USART_DIRECTION_TX) \ |
81 | || ((__VALUE__) == LL_USART_DIRECTION_TX_RX)) |
72 | || ((__VALUE__) == LL_USART_DIRECTION_TX_RX)) |
Line 200... | Line 191... | ||
200 | * parameters in USART_InitStruct. |
191 | * parameters in USART_InitStruct. |
201 | * @note As some bits in USART configuration registers can only be written when the USART is disabled (USART_CR1_UE bit =0), |
192 | * @note As some bits in USART configuration registers can only be written when the USART is disabled (USART_CR1_UE bit =0), |
202 | * USART IP should be in disabled state prior calling this function. Otherwise, ERROR result will be returned. |
193 | * USART IP should be in disabled state prior calling this function. Otherwise, ERROR result will be returned. |
203 | * @note Baud rate value stored in USART_InitStruct BaudRate field, should be valid (different from 0). |
194 | * @note Baud rate value stored in USART_InitStruct BaudRate field, should be valid (different from 0). |
204 | * @param USARTx USART Instance |
195 | * @param USARTx USART Instance |
205 | * @param USART_InitStruct: pointer to a LL_USART_InitTypeDef structure |
196 | * @param USART_InitStruct pointer to a LL_USART_InitTypeDef structure |
206 | * that contains the configuration information for the specified USART peripheral. |
197 | * that contains the configuration information for the specified USART peripheral. |
207 | * @retval An ErrorStatus enumeration value: |
198 | * @retval An ErrorStatus enumeration value: |
208 | * - SUCCESS: USART registers are initialized according to USART_InitStruct content |
199 | * - SUCCESS: USART registers are initialized according to USART_InitStruct content |
209 | * - ERROR: Problem occurred during USART Registers initialization |
200 | * - ERROR: Problem occurred during USART Registers initialization |
210 | */ |
201 | */ |
Line 315... | Line 306... | ||
315 | #else |
306 | #else |
316 | LL_USART_SetBaudRate(USARTx, |
307 | LL_USART_SetBaudRate(USARTx, |
317 | periphclk, |
308 | periphclk, |
318 | USART_InitStruct->BaudRate); |
309 | USART_InitStruct->BaudRate); |
319 | #endif /* USART_OverSampling_Feature */ |
310 | #endif /* USART_OverSampling_Feature */ |
- | 311 | ||
- | 312 | /* Check BRR is greater than or equal to 16d */ |
|
- | 313 | assert_param(IS_LL_USART_BRR_MIN(USARTx->BRR)); |
|
- | 314 | ||
- | 315 | /* Check BRR is greater than or equal to 16d */ |
|
- | 316 | assert_param(IS_LL_USART_BRR_MAX(USARTx->BRR)); |
|
320 | } |
317 | } |
321 | } |
318 | } |
322 | /* Endif (=> USART not in Disabled state => return ERROR) */ |
319 | /* Endif (=> USART not in Disabled state => return ERROR) */ |
323 | 320 | ||
324 | return (status); |
321 | return (status); |
325 | } |
322 | } |
326 | 323 | ||
327 | /** |
324 | /** |
328 | * @brief Set each @ref LL_USART_InitTypeDef field to default value. |
325 | * @brief Set each @ref LL_USART_InitTypeDef field to default value. |
329 | * @param USART_InitStruct: pointer to a @ref LL_USART_InitTypeDef structure |
326 | * @param USART_InitStruct Pointer to a @ref LL_USART_InitTypeDef structure |
330 | * whose fields will be set to default values. |
327 | * whose fields will be set to default values. |
331 | * @retval None |
328 | * @retval None |
332 | */ |
329 | */ |
333 | 330 | ||
334 | void LL_USART_StructInit(LL_USART_InitTypeDef *USART_InitStruct) |
331 | void LL_USART_StructInit(LL_USART_InitTypeDef *USART_InitStruct) |
335 | { |
332 | { |
Line 349... | Line 346... | ||
349 | * @brief Initialize USART Clock related settings according to the |
346 | * @brief Initialize USART Clock related settings according to the |
350 | * specified parameters in the USART_ClockInitStruct. |
347 | * specified parameters in the USART_ClockInitStruct. |
351 | * @note As some bits in USART configuration registers can only be written when the USART is disabled (USART_CR1_UE bit =0), |
348 | * @note As some bits in USART configuration registers can only be written when the USART is disabled (USART_CR1_UE bit =0), |
352 | * USART IP should be in disabled state prior calling this function. Otherwise, ERROR result will be returned. |
349 | * USART IP should be in disabled state prior calling this function. Otherwise, ERROR result will be returned. |
353 | * @param USARTx USART Instance |
350 | * @param USARTx USART Instance |
354 | * @param USART_ClockInitStruct: pointer to a @ref LL_USART_ClockInitTypeDef structure |
351 | * @param USART_ClockInitStruct Pointer to a @ref LL_USART_ClockInitTypeDef structure |
355 | * that contains the Clock configuration information for the specified USART peripheral. |
352 | * that contains the Clock configuration information for the specified USART peripheral. |
356 | * @retval An ErrorStatus enumeration value: |
353 | * @retval An ErrorStatus enumeration value: |
357 | * - SUCCESS: USART registers related to Clock settings are initialized according to USART_ClockInitStruct content |
354 | * - SUCCESS: USART registers related to Clock settings are initialized according to USART_ClockInitStruct content |
358 | * - ERROR: Problem occurred during USART Registers initialization |
355 | * - ERROR: Problem occurred during USART Registers initialization |
359 | */ |
356 | */ |
Line 410... | Line 407... | ||
410 | return (status); |
407 | return (status); |
411 | } |
408 | } |
412 | 409 | ||
413 | /** |
410 | /** |
414 | * @brief Set each field of a @ref LL_USART_ClockInitTypeDef type structure to default value. |
411 | * @brief Set each field of a @ref LL_USART_ClockInitTypeDef type structure to default value. |
415 | * @param USART_ClockInitStruct: pointer to a @ref LL_USART_ClockInitTypeDef structure |
412 | * @param USART_ClockInitStruct Pointer to a @ref LL_USART_ClockInitTypeDef structure |
416 | * whose fields will be set to default values. |
413 | * whose fields will be set to default values. |
417 | * @retval None |
414 | * @retval None |
418 | */ |
415 | */ |
419 | void LL_USART_ClockStructInit(LL_USART_ClockInitTypeDef *USART_ClockInitStruct) |
416 | void LL_USART_ClockStructInit(LL_USART_ClockInitTypeDef *USART_ClockInitStruct) |
420 | { |
417 | { |
421 | /* Set LL_USART_ClockInitStruct fields with default values */ |
418 | /* Set LL_USART_ClockInitStruct fields with default values */ |