📄 probe_rs232c.lst
字号:
144 {
\ ProbeRS232_InitTarget:
\ 00000000 70B5 PUSH {R4-R6,LR}
\ 00000002 88B0 SUB SP,SP,#+32
\ 00000004 0400 MOVS R4,R0
145 GPIO_InitTypeDef gpio_init;
146 USART_InitTypeDef usart_init;
147 NVIC_InitTypeDef nvic_init;
148
149
150 #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
151 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
\ 00000006 0121 MOVS R1,#+1
\ 00000008 8803 LSLS R0,R1,#+14
\ 0000000A ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
152
153 /* ------------------- SETUP USART1 GPIO ------------------ */
154 #if (PROBE_RS232_UART_1_REMAP > 0)
155 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
156 GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
157
158 /* Configure GPIOB.6 as push-pull */
159 gpio_init.GPIO_Pin = GPIO_Pin_6;
160 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
161 gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
162 GPIO_Init(GPIOD, &gpio_init);
163
164 /* Configure GPIOB.7 as input floating */
165 gpio_init.GPIO_Pin = GPIO_Pin_7;
166 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
167 GPIO_Init(GPIOB, &gpio_init);
168 #else
169 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
\ 0000000E 0121 MOVS R1,#+1
\ 00000010 0420 MOVS R0,#+4
\ 00000012 ........ _BLF RCC_APB2PeriphClockCmd,??RCC_APB2PeriphClockCmd??rT
170
171 /* Configure GPIOA.9 as push-pull */
172 gpio_init.GPIO_Pin = GPIO_Pin_9;
\ 00000016 5FF40075 MOVS R5,#+512
\ 0000001A ADF80050 STRH R5,[SP, #+0]
173 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
\ 0000001E 0320 MOVS R0,#+3
\ 00000020 8DF80200 STRB R0,[SP, #+2]
174 gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
\ 00000024 1820 MOVS R0,#+24
\ 00000026 8DF80300 STRB R0,[SP, #+3]
175 GPIO_Init(GPIOA, &gpio_init);
\ 0000002A 1E4E LDR.N R6,??ProbeRS232_InitTarget_0 ;; 0x40010800
\ 0000002C 6946 MOV R1,SP
\ 0000002E 3000 MOVS R0,R6
\ 00000030 ........ _BLF GPIO_Init,??GPIO_Init??rT
176
177 /* Configure GPIOA.10 as input floating */
178 gpio_init.GPIO_Pin = GPIO_Pin_10;
\ 00000034 6800 LSLS R0,R5,#+1
\ 00000036 ADF80000 STRH R0,[SP, #+0]
179 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
\ 0000003A 0420 MOVS R0,#+4
\ 0000003C 8DF80300 STRB R0,[SP, #+3]
180 GPIO_Init(GPIOA, &gpio_init);
\ 00000040 6946 MOV R1,SP
\ 00000042 3000 MOVS R0,R6
\ 00000044 ........ _BLF GPIO_Init,??GPIO_Init??rT
181 #endif
182
183 /* -------------------- SETUP USART1 ---------------------- */
184 usart_init.USART_BaudRate = baud_rate;
\ 00000048 0294 STR R4,[SP, #+8]
185 usart_init.USART_WordLength = USART_WordLength_8b;
\ 0000004A 0024 MOVS R4,#+0
\ 0000004C ADF80C40 STRH R4,[SP, #+12]
186 usart_init.USART_StopBits = USART_StopBits_1;
\ 00000050 ADF80E40 STRH R4,[SP, #+14]
187 usart_init.USART_Parity = USART_Parity_No ;
\ 00000054 ADF81040 STRH R4,[SP, #+16]
188 usart_init.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
\ 00000058 ADF81240 STRH R4,[SP, #+18]
189 usart_init.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
\ 0000005C 0C20 MOVS R0,#+12
\ 0000005E ADF81400 STRH R0,[SP, #+20]
190 usart_init.USART_Clock = USART_Clock_Disable;
\ 00000062 ADF81640 STRH R4,[SP, #+22]
191 usart_init.USART_CPOL = USART_CPOL_Low;
\ 00000066 ADF81840 STRH R4,[SP, #+24]
192 usart_init.USART_CPHA = USART_CPHA_2Edge;
\ 0000006A ADF81A50 STRH R5,[SP, #+26]
193 usart_init.USART_LastBit = USART_LastBit_Disable;
\ 0000006E ADF81C40 STRH R4,[SP, #+28]
194
195 USART_Init(USART1, &usart_init);
\ 00000072 .... LDR.N R5,??DataTable12 ;; 0x40013800
\ 00000074 02A9 ADD R1,SP,#+8
\ 00000076 2800 MOVS R0,R5
\ 00000078 ........ _BLF USART_Init,??USART_Init??rT
196 USART_Cmd(USART1, ENABLE);
\ 0000007C 0121 MOVS R1,#+1
\ 0000007E 2800 MOVS R0,R5
\ 00000080 ........ _BLF USART_Cmd,??USART_Cmd??rT
197
198 nvic_init.NVIC_IRQChannel = USART1_IRQChannel;
\ 00000084 2520 MOVS R0,#+37
\ 00000086 8DF80400 STRB R0,[SP, #+4]
199 nvic_init.NVIC_IRQChannelPreemptionPriority = 0;
\ 0000008A 2000 MOVS R0,R4
\ 0000008C 8DF80500 STRB R0,[SP, #+5]
200 nvic_init.NVIC_IRQChannelSubPriority = 0;
\ 00000090 8DF80640 STRB R4,[SP, #+6]
201 nvic_init.NVIC_IRQChannelCmd = ENABLE;
\ 00000094 0120 MOVS R0,#+1
\ 00000096 8DF80700 STRB R0,[SP, #+7]
202 NVIC_Init(&nvic_init);
\ 0000009A 01A8 ADD R0,SP,#+4
\ 0000009C ........ _BLF NVIC_Init,??NVIC_Init??rT
203 #endif
204
205 #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
206 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
207
208 /* ------------------- SETUP USART2 GPIO ------------------ */
209 #if (PROBE_RS232_UART_2_REMAP > 0)
210 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO, ENABLE);
211 GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
212
213 /* Configure GPIOD.4 as push-pull */
214 gpio_init.GPIO_Pin = GPIO_Pin_4;
215 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
216 gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
217 GPIO_Init(GPIOD, &gpio_init);
218
219 /* Configure GPIOD.3 as input floating */
220 gpio_init.GPIO_Pin = GPIO_Pin_3;
221 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
222 GPIO_Init(GPIOD, &gpio_init);
223 #else
224 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
225
226 /* Configure GPIOA.2 as push-pull */
227 gpio_init.GPIO_Pin = GPIO_Pin_2;
228 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
229 gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
230 GPIO_Init(GPIOA, &gpio_init);
231
232 /* Configure GPIOA.3 as input floating */
233 gpio_init.GPIO_Pin = GPIO_Pin_3;
234 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
235 GPIO_Init(GPIOA, &gpio_init);
236 #endif
237
238
239
240 /* -------------------- SETUP USART2 ---------------------- */
241 usart_init.USART_BaudRate = baud_rate;
242 usart_init.USART_WordLength = USART_WordLength_8b;
243 usart_init.USART_StopBits = USART_StopBits_1;
244 usart_init.USART_Parity = USART_Parity_No ;
245 usart_init.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
246 usart_init.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
247 usart_init.USART_Clock = USART_Clock_Disable;
248 usart_init.USART_CPOL = USART_CPOL_Low;
249 usart_init.USART_CPHA = USART_CPHA_2Edge;
250 usart_init.USART_LastBit = USART_LastBit_Disable;
251
252 USART_Init(USART2, &usart_init);
253 USART_Cmd(USART2, ENABLE);
254
255 nvic_init.NVIC_IRQChannel = USART2_IRQChannel;
256 nvic_init.NVIC_IRQChannelPreemptionPriority = 0;
257 nvic_init.NVIC_IRQChannelSubPriority = 0;
258 nvic_init.NVIC_IRQChannelCmd = ENABLE;
259 NVIC_Init(&nvic_init);
260 #endif
261
262 #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
263 RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
264
265 /* ------------------- SETUP USART3 GPIO ------------------ */
266 #if (PROBE_RS232_UART_3_REMAP_PARTIAL > 0)
267 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
268 GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);
269
270 /* Configure GPIOC.10 as push-pull */
271 gpio_init.GPIO_Pin = GPIO_Pin_10;
272 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
273 gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
274 GPIO_Init(GPIOC, &gpio_init);
275
276 /* Configure GPIOC.11 as input floating */
277 gpio_init.GPIO_Pin = GPIO_Pin_11;
278 gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
279 GPIO_Init(GPIOC, &gpio_init);
280
281 #elif (PROBE_RS232_UART_3_REMAP_FULL > 0)
282
283 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO, ENABLE);
284 GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);
285
286 /* Configure GPIOD.8 as push-pull */
287 gpio_init.GPIO_Pin = GPIO_Pin_8;
288 gpio_init.GPIO_Speed = GPIO_Speed_50MHz;
289 gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
290 GPIO_Init(GPIOD, &gpio_init);
291
292 /* Configure GPIOD.9 as input floating */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -