; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o..\obj\smartcard.o --depend=..\obj\smartcard.d --device=DARMSTM --apcs=interwork -I..\..\library\inc -I..\..\library\src -I..\uvision -IC:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DVECT_TAB_FLASH --omf_browse=..\obj\smartcard.crf smartcard.c]
THUMB
AREA ||i.SC_AnswerReq||, CODE, READONLY, ALIGN=1
SC_AnswerReq PROC
;;;474 *******************************************************************************/
;;;475 static void SC_AnswerReq(SC_State *SCstate, u8 *card, u8 length)
000000 e92d43f8 PUSH {r3-r9,lr}
;;;476 {
000004 4607 MOV r7,r0
;;;477 u8 Data = 0;
000006 2000 MOVS r0,#0
;;;478 u32 i = 0;
000008 4605 MOV r5,r0
;;;479
;;;480 switch(*SCstate)
00000a 9000 STR r0,[sp,#0]
00000c 7838 LDRB r0,[r7,#0]
00000e 460c MOV r4,r1 ;476
000010 4616 MOV r6,r2 ;476
000012 f04f0903 MOV r9,#3
;;;481 {
;;;482 case SC_RESET_LOW:
;;;483 /* Check responce with reset low ---------------------------------------*/
;;;484 for (i = 0; i < length; i++)
;;;485 {
;;;486 if((USART_ByteReceive(&Data, SC_Receive_Timeout)) == SUCCESS)
000016 f44f4880 MOV r8,#0x4000
00001a 2801 CMP r0,#1 ;480
00001c d018 BEQ |L1.80|
00001e 2802 CMP r0,#2 ;480
000020 d022 BEQ |L1.104|
000022 2803 CMP r0,#3 ;480
000024 d008 BEQ |L1.56|
000026 2805 CMP r0,#5 ;480
;;;487 {
;;;488 card[i] = Data;
;;;489 }
;;;490 }
;;;491 if(card[0])
;;;492 {
;;;493 (*SCstate) = SC_ACTIVE;
;;;494 SC_Reset(Bit_SET);
;;;495 }
;;;496 else
;;;497 {
;;;498 (*SCstate) = SC_RESET_HIGH;
;;;499 }
;;;500 break;
;;;501
;;;502 case SC_RESET_HIGH:
;;;503 /* Check responce with reset high --------------------------------------*/
;;;504 SC_Reset(Bit_SET); /* Reset High */
;;;505
;;;506 while(length--)
;;;507 {
;;;508 if((USART_ByteReceive(&Data, SC_Receive_Timeout)) == SUCCESS)
;;;509 {
;;;510 *card++ = Data; /* Receive data for timeout = SC_Receive_Timeout */
;;;511 }
;;;512 }
;;;513 if(card[0])
;;;514 {
;;;515 (*SCstate) = SC_ACTIVE;
;;;516 }
;;;517 else
;;;518 {
;;;519 (*SCstate) = SC_POWER_OFF;
;;;520 }
;;;521 break;
;;;522
;;;523 case SC_ACTIVE:
;;;524 break;
;;;525
;;;526 case SC_POWER_OFF:
;;;527 /* Close Connection if no answer received ------------------------------*/
;;;528 SC_Reset(Bit_SET); /* Reset high - a bit is used as level shifter from 3.3 to 5 V */
;;;529 SC_PowerCmd(DISABLE);
;;;530 break;
;;;531
;;;532 default:
;;;533 (*SCstate) = SC_RESET_LOW;
000028 f04f0001 MOV r0,#1
00002c d137 BNE |L1.158|
00002e f7fffffe BL SC_Reset
000032 2000 MOVS r0,#0 ;529
000034 f7fffffe BL SC_PowerCmd
|L1.56|
;;;534 }
;;;535 }
000038 e8bd83f8 POP {r3-r9,pc}
|L1.60|
00003c 4641 MOV r1,r8 ;486
00003e 4668 MOV r0,sp ;486
000040 f7fffffe BL USART_ByteReceive
000044 2801 CMP r0,#1 ;486
000046 d102 BNE |L1.78|
000048 f89d0000 LDRB r0,[sp,#0] ;488
00004c 5560 STRB r0,[r4,r5] ;488
|L1.78|
00004e 1c6d ADDS r5,r5,#1 ;484
|L1.80|
000050 42b5 CMP r5,r6 ;484
000052 d3f3 BCC |L1.60|
000054 7820 LDRB r0,[r4,#0] ;491
000056 b128 CBZ r0,|L1.100|
000058 f8879000 STRB r9,[r7,#0] ;493
00005c 2001 MOVS r0,#1 ;494
00005e f7fffffe BL SC_Reset
000062 e7e9 B |L1.56|
|L1.100|
000064 2002 MOVS r0,#2 ;498
000066 e016 B |L1.150|
|L1.104|
000068 2001 MOVS r0,#1 ;504
00006a f7fffffe BL SC_Reset
00006e 4645 MOV r5,r8 ;486
000070 e009 B |L1.134|
|L1.114|
000072 4629 MOV r1,r5 ;508
000074 4668 MOV r0,sp ;508
000076 f7fffffe BL USART_ByteReceive
00007a 2801 CMP r0,#1 ;508
00007c d103 BNE |L1.134|
00007e f89d0000 LDRB r0,[sp,#0] ;510
000082 f8040b01 STRB r0,[r4],#1 ;510
|L1.134|
000086 0030 MOVS r0,r6 ;506
000088 f1a60601 SUB r6,r6,#1 ;506
00008c b2f6 UXTB r6,r6 ;506
00008e d1f0 BNE |L1.114|
000090 7820 LDRB r0,[r4,#0] ;513
000092 b110 CBZ r0,|L1.154|
000094 4648 MOV r0,r9 ;515
|L1.150|
000096 7038 STRB r0,[r7,#0] ;498
000098 e7ce B |L1.56|
|L1.154|
00009a 2005 MOVS r0,#5 ;519
00009c e7fb B |L1.150|
|L1.158|
00009e e7fa B |L1.150|
;;;536
ENDP
AREA ||i.SC_Handler||, CODE, READONLY, ALIGN=2
SC_Handler PROC
;;;61 *******************************************************************************/
;;;62 void SC_Handler(SC_State *SCState, SC_ADPU_Commands *SC_ADPU, SC_ADPU_Responce *SC_Response)
000000 b570 PUSH {r4-r6,lr}
;;;63 {
000002 4605 MOV r5,r0
;;;64 u32 i = 0;
;;;65
;;;66 switch(*SCState)
000004 782b LDRB r3,[r5,#0]
000006 4608 MOV r0,r1 ;63
000008 2400 MOVS r4,#0 ;64
00000a 2605 MOVS r6,#5
00000c 4611 MOV r1,r2 ;63
00000e 2b06 CMP r3,#6
000010 d25e BCS |L2.208|
000012 e8dff003 TBB [pc,r3]
000016 0323 DCB 0x03,0x23
000018 5d384246 DCB 0x5d,0x38,0x42,0x46
;;;67 {
;;;68 case SC_POWER_ON:
;;;69 if (SC_ADPU->Header.INS == SC_GET_A2R)
00001c 7840 LDRB r0,[r0,#1]
00001e 2800 CMP r0,#0
000020 d130 BNE |L2.132|
;;;70 {
;;;71 /* Smartcard intialization ------------------------------------------*/
;;;72 SC_Init();
000022 f7fffffe BL SC_Init
;;;73
;;;74 /* Reset Data from SC buffer -----------------------------
没有合适的资源?快使用搜索试试~ 我知道了~
STM32例程(全)
共1884个文件
o:324个
d:276个
crf:237个
需积分: 50 102 下载量 123 浏览量
2015-05-25
16:46:52
上传
评论 3
收藏 13.99MB ZIP 举报
温馨提示
文件中包含所有的STM32例程,很全面,包含有ADC、CAN、SPI、FLASH、RTC等等
资源推荐
资源详情
资源评论
收起资源包目录
STM32例程(全) (1884个子文件)
LCD_SPI.axf 203KB
MASSSTORAGE.AXF 200KB
AUDIOSPEAKER.AXF 180KB
VIRTUALCOMPORT.AXF 173KB
LCD_char.axf 143KB
ADC.axf 135KB
USART.axf 124KB
SC_Demo.axf 121KB
TIM1.axf 120KB
NVIC.axf 113KB
TIM.axf 113KB
RTC.axf 112KB
USART.axf 99KB
PWR.axf 94KB
SPI.axf 93KB
CAN.axf 92KB
irDA_Transmit.axf 90KB
irDA_Receive.axf 90KB
LCD_SPI.axf 88KB
WWDG.axf 83KB
BKP.axf 83KB
EXTI.axf 81KB
SysTick.axf 78KB
RCC.axf 76KB
LCD_CHAR_uvopt.bak 64KB
BLINKY_Uv2.Bak 15KB
BLINKY_Opt.Bak 5KB
MASSSTORAGE_UV2.BAK 4KB
AUDIOSPEAKER_UV2.BAK 4KB
VIRTUALCOMPORT_UV2.BAK 4KB
JOYSTICKMOUSE_UV2.BAK 4KB
LCD_CHAR.Uv2.bak 3KB
LCD_CHAR_Uv2.Bak 3KB
PWR_Uv2.Bak 3KB
ADC_Uv2.Bak 3KB
SC_DEMO_Uv2.Bak 3KB
RTC_Uv2.Bak 3KB
CAN_Uv2.Bak 3KB
SPI_Uv2.Bak 3KB
TSENSOR_Uv2.Bak 3KB
NVIC_Uv2.Bak 3KB
WWDG_Uv2.Bak 3KB
BKP_Uv2.Bak 3KB
IRDA_TRANSMIT_Uv2.Bak 3KB
IRDA_RECEIVE_Uv2.Bak 3KB
EXTI_Uv2.Bak 3KB
SYSTICK_Uv2.Bak 3KB
USART_Uv2.Bak 3KB
TIM1_Uv2.Bak 3KB
PWR_Opt.Bak 3KB
TIM_Uv2.Bak 3KB
LCD_SPI_Uv2.Bak 3KB
LCD_SPI_Uv2.Bak 3KB
GPIO_Uv2.Bak 3KB
RCC_Uv2.Bak 3KB
EXTI_Opt.Bak 3KB
LCD_CHAR.opt.bak 3KB
LCD_CHAR_Opt.Bak 3KB
GPIO_Opt.Bak 3KB
NVIC_Opt.Bak 3KB
USART_Opt.Bak 3KB
VIRTUALCOMPORT_OPT.BAK 3KB
TIM1_Opt.Bak 2KB
JOYSTICKMOUSE_OPT.BAK 2KB
ADC_Opt.Bak 2KB
TIM_Opt.Bak 2KB
STM32F10X_TIM1.C 112KB
STM32F10X_TIM1.C 112KB
STM32F10X_TIM1.C 111KB
STM32F10X_TIM1.C 111KB
STM32F10X_TIM.C 97KB
STM32F10X_TIM.C 97KB
STM32F10X_TIM.C 97KB
STM32F10X_TIM.C 97KB
STM32F10X_ADC.C 54KB
STM32F10X_ADC.C 54KB
STM32F10X_ADC.C 54KB
STM32F10X_ADC.C 54KB
STM32F10X_I2C.C 44KB
STM32F10X_I2C.C 44KB
STM32F10X_I2C.C 44KB
STM32F10X_I2C.C 44KB
STM32F10X_RCC.C 42KB
STM32F10X_RCC.C 42KB
STM32F10X_RCC.C 42KB
STM32F10X_RCC.C 42KB
LCD.C 38KB
LCD.C 38KB
SDCMD.C 36KB
STM32F10X_USART.C 33KB
STM32F10X_USART.C 33KB
STM32F10X_USART.C 33KB
STM32F10X_USART.C 33KB
STM32F10X_USART.C 33KB
STM32F10X_CAN.C 32KB
STM32F10X_FLASH.C 32KB
STM32F10X_FLASH.C 32KB
STM32F10X_FLASH.C 31KB
STM32F10X_FLASH.C 31KB
STM32F10X_CAN.C 31KB
共 1884 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
资源评论
libing1220
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功