📄 stm32f10x_usart.txt
字号:
;;;577 {
;;;578 /* Check the parameters */
;;;579 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;580
;;;581 /* Receive Data */
;;;582 return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);
000002 8888 LDRH r0,[r1,#4]
000004 f3c00008 UBFX r0,r0,#0,#9
;;;583 }
000008 4770 BX lr
;;;584
ENDP
AREA ||i.USART_ReceiverWakeUpCmd||, CODE, READONLY, ALIGN=1
USART_ReceiverWakeUpCmd PROC
;;;484 */
;;;485 void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewState)
000000 b121 CBZ r1,|L18.12|
;;;486 {
;;;487 /* Check the parameters */
;;;488 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;489 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;490
;;;491 if (NewState != DISABLE)
;;;492 {
;;;493 /* Enable the USART mute mode by setting the RWU bit in the CR1 register */
;;;494 USARTx->CR1 |= CR1_RWU_Set;
000002 8982 LDRH r2,[r0,#0xc]
000004 f0420202 ORR r2,r2,#2
000008 8182 STRH r2,[r0,#0xc]
00000a e004 B |L18.22|
|L18.12|
;;;495 }
;;;496 else
;;;497 {
;;;498 /* Disable the USART mute mode by clearing the RWU bit in the CR1 register */
;;;499 USARTx->CR1 &= CR1_RWU_Reset;
00000c 8982 LDRH r2,[r0,#0xc]
00000e f64f73fd MOV r3,#0xfffd
000012 401a ANDS r2,r2,r3
000014 8182 STRH r2,[r0,#0xc]
|L18.22|
;;;500 }
;;;501 }
000016 4770 BX lr
;;;502
ENDP
AREA ||i.USART_SendBreak||, CODE, READONLY, ALIGN=1
USART_SendBreak PROC
;;;591 */
;;;592 void USART_SendBreak(USART_TypeDef* USARTx)
000000 8981 LDRH r1,[r0,#0xc]
;;;593 {
;;;594 /* Check the parameters */
;;;595 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;596
;;;597 /* Send break characters */
;;;598 USARTx->CR1 |= CR1_SBK_Set;
000002 f0410101 ORR r1,r1,#1
000006 8181 STRH r1,[r0,#0xc]
;;;599 }
000008 4770 BX lr
;;;600
ENDP
AREA ||i.USART_SendData||, CODE, READONLY, ALIGN=1
USART_SendData PROC
;;;558 */
;;;559 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
000000 f3c10208 UBFX r2,r1,#0,#9
;;;560 {
;;;561 /* Check the parameters */
;;;562 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;563 assert_param(IS_USART_DATA(Data));
;;;564
;;;565 /* Transmit Data */
;;;566 USARTx->DR = (Data & (uint16_t)0x01FF);
000004 8082 STRH r2,[r0,#4]
;;;567 }
000006 4770 BX lr
;;;568
ENDP
AREA ||i.USART_SetAddress||, CODE, READONLY, ALIGN=1
USART_SetAddress PROC
;;;442 */
;;;443 void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address)
000000 8a02 LDRH r2,[r0,#0x10]
;;;444 {
;;;445 /* Check the parameters */
;;;446 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;447 assert_param(IS_USART_ADDRESS(USART_Address));
;;;448
;;;449 /* Clear the USART address */
;;;450 USARTx->CR2 &= CR2_Address_Mask;
000002 f64f73f0 MOV r3,#0xfff0
000006 401a ANDS r2,r2,r3
000008 8202 STRH r2,[r0,#0x10]
;;;451 /* Set the USART address node */
;;;452 USARTx->CR2 |= USART_Address;
00000a 8a02 LDRH r2,[r0,#0x10]
00000c 430a ORRS r2,r2,r1
00000e 8202 STRH r2,[r0,#0x10]
;;;453 }
000010 4770 BX lr
;;;454
ENDP
AREA ||i.USART_SetGuardTime||, CODE, READONLY, ALIGN=1
USART_SetGuardTime PROC
;;;607 */
;;;608 void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime)
000000 8b02 LDRH r2,[r0,#0x18]
;;;609 {
;;;610 /* Check the parameters */
;;;611 assert_param(IS_USART_123_PERIPH(USARTx));
;;;612
;;;613 /* Clear the USART Guard time */
;;;614 USARTx->GTPR &= GTPR_LSB_Mask;
000002 b2d2 UXTB r2,r2
000004 8302 STRH r2,[r0,#0x18]
;;;615 /* Set the USART guard time */
;;;616 USARTx->GTPR |= (uint16_t)((uint16_t)USART_GuardTime << 0x08);
000006 8b02 LDRH r2,[r0,#0x18]
000008 ea422201 ORR r2,r2,r1,LSL #8
00000c 8302 STRH r2,[r0,#0x18]
;;;617 }
00000e 4770 BX lr
;;;618
ENDP
AREA ||i.USART_SetPrescaler||, CODE, READONLY, ALIGN=1
USART_SetPrescaler PROC
;;;627 */
;;;628 void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler)
000000 8b02 LDRH r2,[r0,#0x18]
;;;629 {
;;;630 /* Check the parameters */
;;;631 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;632
;;;633 /* Clear the USART prescaler */
;;;634 USARTx->GTPR &= GTPR_MSB_Mask;
000002 f402427f AND r2,r2,#0xff00
000006 8302 STRH r2,[r0,#0x18]
;;;635 /* Set the USART prescaler */
;;;636 USARTx->GTPR |= USART_Prescaler;
000008 8b02 LDRH r2,[r0,#0x18]
00000a 430a ORRS r2,r2,r1
00000c 8302 STRH r2,[r0,#0x18]
;;;637 }
00000e 4770 BX lr
;;;638
ENDP
AREA ||i.USART_SmartCardCmd||, CODE, READONLY, ALIGN=1
USART_SmartCardCmd PROC
;;;646 */
;;;647 void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState)
000000 b121 CBZ r1,|L24.12|
;;;648 {
;;;649 /* Check the parameters */
;;;650 assert_param(IS_USART_123_PERIPH(USARTx));
;;;651 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;652 if (NewState != DISABLE)
;;;653 {
;;;654 /* Enable the SC mode by setting the SCEN bit in the CR3 register */
;;;655 USARTx->CR3 |= CR3_SCEN_Set;
000002 8a82 LDRH r2,[r0,#0x14]
000004 f0420220 ORR r2,r2,#0x20
000008 8282 STRH r2,[r0,#0x14]
00000a e004 B |L24.22|
|L24.12|
;;;656 }
;;;657 else
;;;658 {
;;;659 /* Disable the SC mode by clearing the SCEN bit in the CR3 register */
;;;660 USARTx->CR3 &= CR3_SCEN_Reset;
00000c 8a82 LDRH r2,[r0,#0x14]
00000e f64f73df MOV r3,#0xffdf
000012 401a ANDS r2,r2,r3
000014 8282 STRH r2,[r0,#0x14]
|L24.22|
;;;661 }
;;;662 }
000016 4770 BX lr
;;;663
ENDP
AREA ||i.USART_SmartCardNACKCmd||, CODE, READONLY, ALIGN=1
USART_SmartCardNACKCmd PROC
;;;671 */
;;;672 void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState)
000000 b121 CBZ r1,|L25.12|
;;;673 {
;;;674 /* Check the parameters */
;;;675 assert_param(IS_USART_123_PERIPH(USARTx));
;;;676 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;677 if (NewState != DISABLE)
;;;678 {
;;;679 /* Enable the NACK transmission by setting the NACK bit in the CR3 register */
;;;680 USARTx->CR3 |= CR3_NACK_Set;
000002 8a82 LDRH r2,[r0,#0x14]
000004 f0420210 ORR r2,r2,#0x10
000008 8282 STRH r2,[r0,#0x14]
00000a e004 B |L25.22|
|L25.12|
;;;681 }
;;;682 else
;;;683 {
;;;684 /* Disable the NACK transmission by clearing the NACK bit in the CR3 register */
;;;685 USARTx->CR3 &= CR3_NACK_Reset;
00000c 8a82 LDRH r2,[r0,#0x14]
00000e f64f73ef MOV r3,#0xffef
000012 401a ANDS r2,r2,r3
000014 8282 STRH r2,[r0,#0x14]
|L25.22|
;;;686 }
;;;687 }
000016 4770 BX lr
;;;688
ENDP
AREA ||i.USART_StructInit||, CODE, READONLY, ALIGN=1
USART_StructInit PROC
;;;248 */
;;;249 void USART_StructInit(USART_InitTypeDef* USART_InitStruct)
000000 f44f5116 MOV r1,#0x2580
;;;250 {
;;;251 /* USART_InitStruct members default value */
;;;252 USART_InitStruct->USART_BaudRate = 9600;
000004 6001 STR r1,[r0,#0]
;;;253 USART_InitStruct->USART_WordLength = USART_WordLength_8b;
000006 2100 MOVS r1,#0
000008 8081 STRH r1,[r0,#4]
;;;254 USART_InitStruct->USART_StopBits = USART_StopBits_1;
00000a 80c1 STRH r1,[r0,#6]
;;;255 USART_InitStruct->USART_Parity = USART_Parity_No ;
00000c 8101 STRH r1,[r0,#8]
;;;256 USART_InitStruct->USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
00000e 210c MOVS r1,#0xc
000010 8141 STRH r1,[r0,#0xa]
;;;257 USART_InitStruct->USART_HardwareFlowControl = USART_HardwareFlowControl_None;
000012 2100 MOVS r1,#0
000014 8181 STRH r1,[r0,#0xc]
;;;258 }
000016 4770 BX lr
;;;259
ENDP
AREA ||i.USART_WakeUpConfig||, CODE, READONLY, ALIGN=1
USART_WakeUpConfig PROC
;;;465 */
;;;466 void USART_WakeUpConfig(USART_TypeDef* USARTx, uint16_t USART_WakeUp)
000000 8982 LDRH r2,[r0,#0xc]
;;;467 {
;;;468 /* Check the parameters */
;;;469 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;470 assert_param(IS_USART_WAKEUP(USART_WakeUp));
;;;471
;;;472 USARTx->CR1 &= CR1_WAKE_Mask;
000002 f24f73ff MOV r3,#0xf7ff
000006 401a ANDS r2,r2,r3
000008 8182 STRH r2,[r0,#0xc]
;;;473 USARTx->CR1 |= USART_WakeUp;
00000a 8982 LDRH r2,[r0,#0xc]
00000c 430a ORRS r2,r2,r1
00000e 8182 STRH r2,[r0,#0xc]
;;;474 }
000010 4770 BX lr
;;;475
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -