📄 stm32f10x_usart.lst
字号:
###############################################################################
# #
# IAR ANSI C/C++ Compiler V6.10.2.52244/W32 for ARM 07/Aug/2011 12:10:41 #
# Copyright 1999-2010 IAR Systems AB. #
# #
# Cpu mode = thumb #
# Endian = little #
# Source file = F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10 #
# x_StdPeriph_Driver\src\stm32f10x_usart.c #
# Command line = F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10 #
# x_StdPeriph_Driver\src\stm32f10x_usart.c -D #
# USE_STDPERIPH_DRIVER -D STM32F10X_CL -lCN #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
# t\ -o F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Fla #
# sh\Obj\ --no_cse --no_unroll --no_inline #
# --no_code_motion --no_tbaa --no_clustering #
# --no_scheduling --debug --endian=little --cpu=Cortex-M3 #
# -e --fpu=None --dlib_config #
# D:\arm\INC\c\DLib_Config_Normal.h -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\APP\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ #
# -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP #
# \ST\CMSIS\CM3\CoreSupport\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \CMSIS\CM3\DeviceSupport\ST\STM32F10x\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\ST #
# \STM32F10x_StdPeriph_Driver\inc\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\BSP\uC #
# OS-II\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II #
# \..\..\uCOS-II\Ports\ARM-Cortex-M3\Generic\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uCO #
# S-II\Source\ -I F:\stm32\我的程序\Micrium\Software\EWARM #
# \OS-II\..\..\uC-LIB\ -I F:\stm32\我的程序\Micrium\Softwa #
# re\EWARM\OS-II\..\..\uC-LIB\Ports\ARM-Cortex-M3\IAR\ -I #
# F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\..\..\uC- #
# CPU\ -I F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\. #
# .\..\uC-CPU\ARM-Cortex-M3\IAR\ -On --use_c++_inline #
# List file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Lis #
# t\stm32f10x_usart.lst #
# Object file = F:\stm32\我的程序\Micrium\Software\EWARM\OS-II\Flash\Obj #
# \stm32f10x_usart.o #
# #
# #
###############################################################################
F:\stm32\我的程序\Micrium\Software\EWARM\BSP\ST\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c
1 /**
2 ******************************************************************************
3 * @file stm32f10x_usart.c
4 * @author MCD Application Team
5 * @version V3.4.0
6 * @date 10/15/2010
7 * @brief This file provides all the USART firmware functions.
8 ******************************************************************************
9 * @copy
10 *
11 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
12 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
13 * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
14 * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
15 * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
16 * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
17 *
18 * <h2><center>© COPYRIGHT 2010 STMicroelectronics</center></h2>
19 */
20
21 /* Includes ------------------------------------------------------------------*/
22 #include "stm32f10x_usart.h"
23 #include "stm32f10x_rcc.h"
24
25 /** @addtogroup STM32F10x_StdPeriph_Driver
26 * @{
27 */
28
29 /** @defgroup USART
30 * @brief USART driver modules
31 * @{
32 */
33
34 /** @defgroup USART_Private_TypesDefinitions
35 * @{
36 */
37
38 /**
39 * @}
40 */
41
42 /** @defgroup USART_Private_Defines
43 * @{
44 */
45
46 #define CR1_UE_Set ((uint16_t)0x2000) /*!< USART Enable Mask */
47 #define CR1_UE_Reset ((uint16_t)0xDFFF) /*!< USART Disable Mask */
48
49 #define CR1_WAKE_Mask ((uint16_t)0xF7FF) /*!< USART WakeUp Method Mask */
50
51 #define CR1_RWU_Set ((uint16_t)0x0002) /*!< USART mute mode Enable Mask */
52 #define CR1_RWU_Reset ((uint16_t)0xFFFD) /*!< USART mute mode Enable Mask */
53 #define CR1_SBK_Set ((uint16_t)0x0001) /*!< USART Break Character send Mask */
54 #define CR1_CLEAR_Mask ((uint16_t)0xE9F3) /*!< USART CR1 Mask */
55 #define CR2_Address_Mask ((uint16_t)0xFFF0) /*!< USART address Mask */
56
57 #define CR2_LINEN_Set ((uint16_t)0x4000) /*!< USART LIN Enable Mask */
58 #define CR2_LINEN_Reset ((uint16_t)0xBFFF) /*!< USART LIN Disable Mask */
59
60 #define CR2_LBDL_Mask ((uint16_t)0xFFDF) /*!< USART LIN Break detection Mask */
61 #define CR2_STOP_CLEAR_Mask ((uint16_t)0xCFFF) /*!< USART CR2 STOP Bits Mask */
62 #define CR2_CLOCK_CLEAR_Mask ((uint16_t)0xF0FF) /*!< USART CR2 Clock Mask */
63
64 #define CR3_SCEN_Set ((uint16_t)0x0020) /*!< USART SC Enable Mask */
65 #define CR3_SCEN_Reset ((uint16_t)0xFFDF) /*!< USART SC Disable Mask */
66
67 #define CR3_NACK_Set ((uint16_t)0x0010) /*!< USART SC NACK Enable Mask */
68 #define CR3_NACK_Reset ((uint16_t)0xFFEF) /*!< USART SC NACK Disable Mask */
69
70 #define CR3_HDSEL_Set ((uint16_t)0x0008) /*!< USART Half-Duplex Enable Mask */
71 #define CR3_HDSEL_Reset ((uint16_t)0xFFF7) /*!< USART Half-Duplex Disable Mask */
72
73 #define CR3_IRLP_Mask ((uint16_t)0xFFFB) /*!< USART IrDA LowPower mode Mask */
74 #define CR3_CLEAR_Mask ((uint16_t)0xFCFF) /*!< USART CR3 Mask */
75
76 #define CR3_IREN_Set ((uint16_t)0x0002) /*!< USART IrDA Enable Mask */
77 #define CR3_IREN_Reset ((uint16_t)0xFFFD) /*!< USART IrDA Disable Mask */
78 #define GTPR_LSB_Mask ((uint16_t)0x00FF) /*!< Guard Time Register LSB Mask */
79 #define GTPR_MSB_Mask ((uint16_t)0xFF00) /*!< Guard Time Register MSB Mask */
80 #define IT_Mask ((uint16_t)0x001F) /*!< USART Interrupt Mask */
81
82 /* USART OverSampling-8 Mask */
83 #define CR1_OVER8_Set ((u16)0x8000) /* USART OVER8 mode Enable Mask */
84 #define CR1_OVER8_Reset ((u16)0x7FFF) /* USART OVER8 mode Disable Mask */
85
86 /* USART One Bit Sampling Mask */
87 #define CR3_ONEBITE_Set ((u16)0x0800) /* USART ONEBITE mode Enable Mask */
88 #define CR3_ONEBITE_Reset ((u16)0xF7FF) /* USART ONEBITE mode Disable Mask */
89
90 /**
91 * @}
92 */
93
94 /** @defgroup USART_Private_Macros
95 * @{
96 */
97
98 /**
99 * @}
100 */
101
102 /** @defgroup USART_Private_Variables
103 * @{
104 */
105
106 /**
107 * @}
108 */
109
110 /** @defgroup USART_Private_FunctionPrototypes
111 * @{
112 */
113
114 /**
115 * @}
116 */
117
118 /** @defgroup USART_Private_Functions
119 * @{
120 */
121
122 /**
123 * @brief Deinitializes the USARTx peripheral registers to their default reset values.
124 * @param USARTx: Select the USART or the UART peripheral.
125 * This parameter can be one of the following values: USART1, USART2, USART3, UART4 or UART5.
126 * @retval None
127 */
\ In section .text, align 2, keep-with-next
128 void USART_DeInit(USART_TypeDef* USARTx)
129 {
\ USART_DeInit:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0400 MOVS R4,R0
130 /* Check the parameters */
131 assert_param(IS_USART_ALL_PERIPH(USARTx));
132
133 if (USARTx == USART1)
\ 00000004 .... LDR.N R0,??DataTable1 ;; 0x40013800
\ 00000006 8442 CMP R4,R0
\ 00000008 0AD1 BNE.N ??USART_DeInit_0
134 {
135 RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);
\ 0000000A 0121 MOVS R1,#+1
\ 0000000C 4FF48040 MOV R0,#+16384
\ 00000010 ........ BL RCC_APB2PeriphResetCmd
136 RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE);
\ 00000014 0021 MOVS R1,#+0
\ 00000016 4FF48040 MOV R0,#+16384
\ 0000001A ........ BL RCC_APB2PeriphResetCmd
\ 0000001E 36E0 B.N ??USART_DeInit_1
137 }
138 else if (USARTx == USART2)
\ ??USART_DeInit_0:
\ 00000020 .... LDR.N R0,??DataTable1_1 ;; 0x40004400
\ 00000022 8442 CMP R4,R0
\ 00000024 0AD1 BNE.N ??USART_DeInit_2
139 {
140 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, ENABLE);
\ 00000026 0121 MOVS R1,#+1
\ 00000028 5FF40030 MOVS R0,#+131072
\ 0000002C ........ BL RCC_APB1PeriphResetCmd
141 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, DISABLE);
\ 00000030 0021 MOVS R1,#+0
\ 00000032 5FF40030 MOVS R0,#+131072
\ 00000036 ........ BL RCC_APB1PeriphResetCmd
\ 0000003A 28E0 B.N ??USART_DeInit_1
142 }
143 else if (USARTx == USART3)
\ ??USART_DeInit_2:
\ 0000003C .... LDR.N R0,??DataTable1_2 ;; 0x40004800
\ 0000003E 8442 CMP R4,R0
\ 00000040 0AD1 BNE.N ??USART_DeInit_3
144 {
145 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, ENABLE);
\ 00000042 0121 MOVS R1,#+1
\ 00000044 5FF48020 MOVS R0,#+262144
\ 00000048 ........ BL RCC_APB1PeriphResetCmd
146 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, DISABLE);
\ 0000004C 0021 MOVS R1,#+0
\ 0000004E 5FF48020 MOVS R0,#+262144
\ 00000052 ........ BL RCC_APB1PeriphResetCmd
\ 00000056 1AE0 B.N ??USART_DeInit_1
147 }
148 else if (USARTx == UART4)
\ ??USART_DeInit_3:
\ 00000058 .... LDR.N R0,??DataTable1_3 ;; 0x40004c00
\ 0000005A 8442 CMP R4,R0
\ 0000005C 0AD1 BNE.N ??USART_DeInit_4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -