📄 stm32f10x_usart.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART 26/Dec/2008 18:22:09 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Stack alignment = 4 #
# Source file = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_u #
# sart.c #
# Command line = F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_u #
# sart.c -lCN F:\PROJECT\STM32_UCOSII\EvalBoards\ST\ST #
# M3210E-EVAL\IAR\OS-Probe\Flash\List\ -o #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\ -z6 --no_unroll --no_inline #
# --no_tbaa --no_scheduling --debug --cpu_mode thumb #
# --endian little --cpu cortex-M3 --stack_align 4 -e #
# --fpu None --dlib_config "E:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 #
# Kickstart\arm\LIB\dl7mptnnl8n.h" -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ #
# ST\STM3210E-EVAL\IAR\OS-Probe\..\BSP\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\CPU\ST\STM32\inc\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-CPU\ARM-Cortex-M3\IAR #
# \ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E- #
# EVAL\IAR\OS-Probe\..\..\..\..\..\uC-LCD\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-LIB\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uCOS-II\Ports\ARM-Cortex #
# -M3\Generic\IAR\ -I F:\PROJECT\STM32_UCOSII\EvalBoar #
# ds\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uCOS #
# -II\Source\ -I F:\PROJECT\STM32_UCOSII\EvalBoards\ST #
# \STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\..\uC-Probe\ #
# Target\Communication\Generic\RS-232\Source\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\RS-232\Ports\ST\STM32\ -I #
# F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Communic #
# ation\Generic\Source\ -I F:\PROJECT\STM32_UCOSII\Eva #
# lBoards\ST\STM3210E-EVAL\IAR\OS-Probe\..\..\..\..\.. #
# \uC-Probe\Target\Plugins\uCOS-II\ -I "E:\Program #
# Files\IAR Systems\Embedded Workbench 4.0 #
# Kickstart\arm\INC\" #
# List file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\List\stm32f10x_usart.lst #
# Object file = F:\PROJECT\STM32_UCOSII\EvalBoards\ST\STM3210E-EVAL\ #
# IAR\OS-Probe\Flash\Obj\stm32f10x_usart.r79 #
# #
# #
##############################################################################
F:\PROJECT\STM32_UCOSII\CPU\ST\STM32\src\stm32f10x_usart.c
1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2 * File Name : stm32f10x_usart.c
3 * Author : MCD Application Team
4 * Version : V2.0
5 * Date : 05/23/2008
6 * Description : This file provides all the USART firmware functions.
7 ********************************************************************************
8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
12 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
14 * FOR MORE INFORMATION PLEASE CAREFULLY READ THE LICENSE AGREEMENT FILE LOCATED
15 * IN THE ROOT DIRECTORY OF THIS FIRMWARE PACKAGE.
16 *******************************************************************************/
17
18 /* Includes ------------------------------------------------------------------*/
19 #include "stm32f10x_usart.h"
20 #include "stm32f10x_rcc.h"
21
22 /* Private typedef -----------------------------------------------------------*/
23 /* Private define ------------------------------------------------------------*/
24 /* USART UE Mask */
25 #define CR1_UE_Set ((u16)0x2000) /* USART Enable Mask */
26 #define CR1_UE_Reset ((u16)0xDFFF) /* USART Disable Mask */
27
28 /* USART WakeUp Method */
29 #define CR1_WAKE_Mask ((u16)0xF7FF) /* USART WakeUp Method Mask */
30
31 /* USART RWU Mask */
32 #define CR1_RWU_Set ((u16)0x0002) /* USART mute mode Enable Mask */
33 #define CR1_RWU_Reset ((u16)0xFFFD) /* USART mute mode Enable Mask */
34
35 #define CR1_SBK_Set ((u16)0x0001) /* USART Break Character send Mask */
36
37 #define CR1_CLEAR_Mask ((u16)0xE9F3) /* USART CR1 Mask */
38
39 #define CR2_Address_Mask ((u16)0xFFF0) /* USART address Mask */
40
41 /* USART LIN Mask */
42 #define CR2_LINEN_Set ((u16)0x4000) /* USART LIN Enable Mask */
43 #define CR2_LINEN_Reset ((u16)0xBFFF) /* USART LIN Disable Mask */
44
45 /* USART LIN Break detection */
46 #define CR2_LBDL_Mask ((u16)0xFFDF) /* USART LIN Break detection Mask */
47
48 #define CR2_STOP_CLEAR_Mask ((u16)0xCFFF) /* USART CR2 STOP Bits Mask */
49 #define CR2_CLOCK_CLEAR_Mask ((u16)0xF0FF) /* USART CR2 Clock Mask */
50
51 /* USART SC Mask */
52 #define CR3_SCEN_Set ((u16)0x0020) /* USART SC Enable Mask */
53 #define CR3_SCEN_Reset ((u16)0xFFDF) /* USART SC Disable Mask */
54
55 /* USART SC NACK Mask */
56 #define CR3_NACK_Set ((u16)0x0010) /* USART SC NACK Enable Mask */
57 #define CR3_NACK_Reset ((u16)0xFFEF) /* USART SC NACK Disable Mask */
58
59 /* USART Half-Duplex Mask */
60 #define CR3_HDSEL_Set ((u16)0x0008) /* USART Half-Duplex Enable Mask */
61 #define CR3_HDSEL_Reset ((u16)0xFFF7) /* USART Half-Duplex Disable Mask */
62
63 /* USART IrDA Mask */
64 #define CR3_IRLP_Mask ((u16)0xFFFB) /* USART IrDA LowPower mode Mask */
65
66 #define CR3_CLEAR_Mask ((u16)0xFCFF) /* USART CR3 Mask */
67
68 /* USART IrDA Mask */
69 #define CR3_IREN_Set ((u16)0x0002) /* USART IrDA Enable Mask */
70 #define CR3_IREN_Reset ((u16)0xFFFD) /* USART IrDA Disable Mask */
71
72 #define GTPR_LSB_Mask ((u16)0x00FF) /* Guard Time Register LSB Mask */
73 #define GTPR_MSB_Mask ((u16)0xFF00) /* Guard Time Register MSB Mask */
74
75 #define IT_Mask ((u16)0x001F) /* USART Interrupt Mask */
76
77 /* Private macro -------------------------------------------------------------*/
78 /* Private variables ---------------------------------------------------------*/
79 /* Private function prototypes -----------------------------------------------*/
80 /* Private functions ---------------------------------------------------------*/
81
82 /*******************************************************************************
83 * Function Name : USART_DeInit
84 * Description : Deinitializes the USARTx peripheral registers to their
85 * default reset values.
86 * Input : - USARTx: Select the USART or the UART peripheral.
87 * This parameter can be one of the following values:
88 * - USART1, USART2, USART3, UART4 or UART5.
89 * Output : None
90 * Return : None
91 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
92 void USART_DeInit(USART_TypeDef* USARTx)
93 {
\ USART_DeInit:
\ 00000000 00B5 PUSH {LR}
94 /* Check the parameters */
95 assert_param(IS_USART_ALL_PERIPH(USARTx));
96
97 switch (*(u32*)&USARTx)
\ 00000002 2049 LDR.N R1,??USART_DeInit_0 ;; 0x40004400
\ 00000004 8842 CMP R0,R1
\ 00000006 15D0 BEQ.N ??USART_DeInit_1
\ 00000008 1F49 LDR.N R1,??USART_DeInit_0+0x4 ;; 0x40004800
\ 0000000A 8842 CMP R0,R1
\ 0000000C 1CD0 BEQ.N ??USART_DeInit_2
\ 0000000E 1F49 LDR.N R1,??USART_DeInit_0+0x8 ;; 0x40004c00
\ 00000010 8842 CMP R0,R1
\ 00000012 23D0 BEQ.N ??USART_DeInit_3
\ 00000014 1E49 LDR.N R1,??USART_DeInit_0+0xC ;; 0x40005000
\ 00000016 8842 CMP R0,R1
\ 00000018 2AD0 BEQ.N ??USART_DeInit_4
\ 0000001A .... LDR.N R1,??DataTable1 ;; 0x40013800
\ 0000001C 8842 CMP R0,R1
\ 0000001E 30D1 BNE.N ??USART_DeInit_5
98 {
99 case USART1_BASE:
100 RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, ENABLE);
\ 00000020 0121 MOVS R1,#+1
\ 00000022 8803 LSLS R0,R1,#+14
\ 00000024 ........ _BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
101 RCC_APB2PeriphResetCmd(RCC_APB2Periph_USART1, DISABLE);
\ 00000028 0021 MOVS R1,#+0
\ 0000002A 5FF48040 MOVS R0,#+16384
\ 0000002E ........ _BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
\ 00000032 00BD POP {PC}
102 break;
103
104 case USART2_BASE:
105 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, ENABLE);
\ ??USART_DeInit_1:
\ 00000034 0121 MOVS R1,#+1
\ 00000036 4804 LSLS R0,R1,#+17
\ 00000038 ........ _BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
106 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART2, DISABLE);
\ 0000003C 0021 MOVS R1,#+0
\ 0000003E 5FF40030 MOVS R0,#+131072
\ 00000042 ........ _BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
\ 00000046 00BD POP {PC}
107 break;
108
109 case USART3_BASE:
110 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, ENABLE);
\ ??USART_DeInit_2:
\ 00000048 0121 MOVS R1,#+1
\ 0000004A 8804 LSLS R0,R1,#+18
\ 0000004C ........ _BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
111 RCC_APB1PeriphResetCmd(RCC_APB1Periph_USART3, DISABLE);
\ 00000050 0021 MOVS R1,#+0
\ 00000052 5FF48020 MOVS R0,#+262144
\ 00000056 ........ _BLF RCC_APB1PeriphResetCmd,??RCC_APB1PeriphResetCmd??rT
\ 0000005A 00BD POP {PC}
112 break;
113
114 case UART4_BASE:
115 RCC_APB1PeriphResetCmd(RCC_APB1Periph_UART4, ENABLE);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -