📄 stm32f10x_adc.lst
字号:
##############################################################################
# #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 KICKSTART 13/Mar/2009 16:01:08 #
# Copyright 1999-2005 IAR Systems. All rights reserved. #
# #
# Cpu mode = thumb #
# Endian = little #
# Stack alignment = 4 #
# Source file = E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x #
# _adc.c #
# Command line = E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x #
# _adc.c -lCN E:\UC_OS\Micrium\Software\EvalBoards\ST\ #
# STM3210B-EVAL\IAR\OS-Probe\Flash\List\ -o #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\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 #
# "C:\Program Files\IAR Systems\Embedded Workbench #
# 4.0 Kickstart\arm\LIB\dl7mptnnl8n.h" -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\ -I E:\UC_OS\Micrium\Software\EvalBoa #
# rds\ST\STM3210B-EVAL\IAR\OS-Probe\..\..\..\..\..\uco #
# s-ii\ports\arm-cortex-m3\generic\iar\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\ucos-ii\source\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\uc-lib\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\uc-cpu\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\uc-cpu\ARM-Cortex-M3\I #
# AR\ -I E:\UC_OS\Micrium\Software\EvalBoards\ST\STM32 #
# 10B-EVAL\IAR\OS-Probe\..\..\..\..\..\cpu\st\stm32\in #
# c\ -I E:\UC_OS\Micrium\Software\EvalBoards\ST\STM321 #
# 0B-EVAL\IAR\OS-Probe\..\BSP\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
# ication\Generic\RS-232\Source\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
# ication\Generic\RS-232\Ports\ST\STM32\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Commun #
# ication\Generic\Source\ -I #
# E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\..\..\..\..\..\uC-Probe\Target\Plugin #
# s\uCOS-II\ -I "C:\Program Files\IAR #
# Systems\Embedded Workbench 4.0 Kickstart\arm\INC\" #
# List file = E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\Flash\List\stm32f10x_adc.lst #
# Object file = E:\UC_OS\Micrium\Software\EvalBoards\ST\STM3210B-EVA #
# L\IAR\OS-Probe\Flash\Obj\stm32f10x_adc.r79 #
# #
# #
##############################################################################
E:\UC_OS\Micrium\Software\CPU\ST\STM32\src\stm32f10x_adc.c
1 /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
2 * File Name : stm32f10x_adc.c
3 * Author : MCD Application Team
4 * Date First Issued : 09/29/2006
5 * Description : This file provides all the ADC firmware functions.
6 ********************************************************************************
7 * History:
8 * 05/21/2007: V0.3
9 * 04/02/2007: V0.2
10 * 02/05/2007: V0.1
11 * 09/29/2006: V0.01
12 ********************************************************************************
13 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
14 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
15 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
16 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
17 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
18 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
19 *******************************************************************************/
20
21 /* Includes ------------------------------------------------------------------*/
22 #include "stm32f10x_adc.h"
23 #include "stm32f10x_rcc.h"
24
25 /* Private typedef -----------------------------------------------------------*/
26 /* Private define ------------------------------------------------------------*/
27 /* ADC ADON mask */
28 #define CR2_ADON_Set ((u32)0x00000001)
29 #define CR2_ADON_Reset ((u32)0xFFFFFFFE)
30
31 /* ADC DMA mask */
32 #define CR2_DMA_Set ((u16)0x0100)
33 #define CR2_DMA_Reset ((u16)0xFEFF)
34
35 /* ADC RSTCAL mask */
36 #define CR2_RSTCAL_Set ((u16)0x0008)
37
38 /* ADC CAL mask */
39 #define CR2_CAL_Set ((u16)0x0004)
40
41 /* ADC SWSTRT mask */
42 #define CR2_SWSTRT_Set ((u32)0x00400000)
43
44 /* ADC DISCNUM mask */
45 #define CR1_DISCNUM_Reset ((u32)0xFFFF1FFF)
46
47 /* ADC DISCEN mask */
48 #define CR1_DISCEN_Set ((u32)0x00000800)
49 #define CR1_DISCEN_Reset ((u32)0xFFFFF7FF)
50
51 /* ADC EXTTRIG mask */
52 #define CR2_EXTTRIG_Set ((u32)0x00100000)
53 #define CR2_EXTTRIG_Reset ((u32)0xFFEFFFFF)
54
55 /* ADC Software start mask */
56 #define CR2_EXTTRIG_SWSTRT_Set ((u32)0x00500000)
57 #define CR2_EXTTRIG_SWSTRT_Reset ((u32)0xFFAFFFFF)
58
59 /* ADC JAUTO mask */
60 #define CR1_JAUTO_Set ((u32)0x00000400)
61 #define CR1_JAUTO_Reset ((u32)0xFFFFFBFF)
62
63 /* ADC JDISCEN mask */
64 #define CR1_JDISCEN_Set ((u32)0x00001000)
65 #define CR1_JDISCEN_Reset ((u32)0xFFFFEFFF)
66
67 /* ADC JEXTSEL mask */
68 #define CR2_JEXTSEL_Reset ((u32)0xFFFF8FFF)
69
70 /* ADC JEXTTRIG mask */
71 #define CR2_JEXTTRIG_Set ((u32)0x00008000)
72 #define CR2_JEXTTRIG_Reset ((u32)0xFFFF7FFF)
73
74 /* ADC JSWSTRT mask */
75 #define CR2_JSWSTRT_Set ((u32)0x00200000)
76
77 /* ADC injected software start mask */
78 #define CR2_JEXTTRIG_JSWSTRT_Set ((u32)0x00208000)
79 #define CR2_JEXTTRIG_JSWSTRT_Reset ((u32)0xFFDF7FFF)
80
81 /* ADC AWDCH mask */
82 #define CR1_AWDCH_Reset ((u32)0xFFFFFFE0)
83
84 /* ADC SQx mask */
85 #define SQR3_SQ_Set ((u8)0x1F)
86 #define SQR2_SQ_Set ((u8)0x1F)
87 #define SQR1_SQ_Set ((u8)0x1F)
88
89 /* ADC JSQx mask */
90 #define JSQR_JSQ_Set ((u8)0x1F)
91
92 /* ADC JL mask */
93 #define JSQR_JL_Reset ((u32)0xFFCFFFFF)
94
95 /* ADC SMPx mask */
96 #define SMPR1_SMP_Set ((u8)0x07)
97 #define SMPR2_SMP_Set ((u8)0x07)
98
99 /* ADC Analog watchdog enable mode mask */
100 #define CR1_AWDMode_Reset ((u32)0xFF3FFDFF)
101
102 /* ADC TSPD mask */
103 #define CR2_TSVREFE_Set ((u32)0x00800000)
104 #define CR2_TSVREFE_Reset ((u32)0xFF7FFFFF)
105
106 /* ADC JDRx registers= offset */
107 #define JDR_Offset ((u8)0x28)
108
109 /* ADC registers Masks */
110 #define CR1_CLEAR_Mask ((u32)0xFFF0FEFF)
111 #define CR2_CLEAR_Mask ((u32)0xFFF1F7FD)
112 #define SQR1_CLEAR_Mask ((u32)0xFF0FFFFF)
113
114 /* Private macro -------------------------------------------------------------*/
115 /* Private variables ---------------------------------------------------------*/
116 /* Private function prototypes -----------------------------------------------*/
117 /* Private functions ---------------------------------------------------------*/
118
119 /*******************************************************************************
120 * Function Name : ADC_DeInit
121 * Description : Deinitializes the ADCx peripheral registers to their default
122 * reset values.
123 * Input : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
124 * Output : None
125 * Return : None
126 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
127 void ADC_DeInit(ADC_TypeDef* ADCx)
128 {
\ ADC_DeInit:
\ 00000000 00B5 PUSH {LR}
129 switch (*(u32*)&ADCx)
\ 00000002 0D49 LDR.N R1,??ADC_DeInit_0 ;; 0x40012400
\ 00000004 8842 CMP R0,R1
\ 00000006 03D0 BEQ.N ??ADC_DeInit_1
\ 00000008 0C49 LDR.N R1,??ADC_DeInit_0+0x4 ;; 0x40012800
\ 0000000A 8842 CMP R0,R1
\ 0000000C 0AD0 BEQ.N ??ADC_DeInit_2
\ 0000000E 00BD POP {PC}
130 {
131 case ADC1_BASE:
132 /* Enable ADC1 reset state */
133 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, ENABLE);
\ ??ADC_DeInit_1:
\ 00000010 0121 MOVS R1,#+1
\ 00000012 4802 LSLS R0,R1,#+9
\ 00000014 ........ _BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
134 /* Release ADC1 from reset state */
135 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, DISABLE);
\ 00000018 0021 MOVS R1,#+0
\ 0000001A 5FF40070 MOVS R0,#+512
\ 0000001E ........ _BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
\ 00000022 00BD POP {PC}
136 break;
137
138 case ADC2_BASE:
139 /* Enable ADC2 reset state */
140 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, ENABLE);
\ ??ADC_DeInit_2:
\ 00000024 0121 MOVS R1,#+1
\ 00000026 8802 LSLS R0,R1,#+10
\ 00000028 ........ _BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
141 /* Release ADC2 from reset state */
142 RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, DISABLE);
\ 0000002C 0021 MOVS R1,#+0
\ 0000002E 5FF48060 MOVS R0,#+1024
\ 00000032 ........ _BLF RCC_APB2PeriphResetCmd,??RCC_APB2PeriphResetCmd??rT
143 break;
144
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -