📄 stm32f10x_usart.txt
字号:
;;;771 USARTx->CR1 |= CR1_OVER8_Set;
000002 8982 LDRH r2,[r0,#0xc]
000004 f4424200 ORR r2,r2,#0x8000
000008 8182 STRH r2,[r0,#0xc]
00000a e003 B |L18.20|
|L18.12|
;;;772 }
;;;773 else
;;;774 {
;;;775 /* Disable the 8x Oversampling mode by clearing the OVER8 bit in the CR1 register */
;;;776 USARTx->CR1 &= CR1_OVER8_Reset;
00000c 8982 LDRH r2,[r0,#0xc]
00000e f3c2020e UBFX r2,r2,#0,#15
000012 8182 STRH r2,[r0,#0xc]
|L18.20|
;;;777 }
;;;778 }
000014 4770 BX lr
;;;779
ENDP
AREA ||i.USART_ReceiveData||, CODE, READONLY, ALIGN=1
USART_ReceiveData PROC
;;;608 */
;;;609 uint16_t USART_ReceiveData(USART_TypeDef* USARTx)
000000 4601 MOV r1,r0
;;;610 {
;;;611 /* Check the parameters */
;;;612 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;613
;;;614 /* Receive Data */
;;;615 return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);
000002 8888 LDRH r0,[r1,#4]
000004 f3c00008 UBFX r0,r0,#0,#9
;;;616 }
000008 4770 BX lr
;;;617
ENDP
AREA ||i.USART_ReceiverWakeUpCmd||, CODE, READONLY, ALIGN=1
USART_ReceiverWakeUpCmd PROC
;;;517 */
;;;518 void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewState)
000000 b121 CBZ r1,|L20.12|
;;;519 {
;;;520 /* Check the parameters */
;;;521 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;522 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;523
;;;524 if (NewState != DISABLE)
;;;525 {
;;;526 /* Enable the USART mute mode by setting the RWU bit in the CR1 register */
;;;527 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 |L20.22|
|L20.12|
;;;528 }
;;;529 else
;;;530 {
;;;531 /* Disable the USART mute mode by clearing the RWU bit in the CR1 register */
;;;532 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]
|L20.22|
;;;533 }
;;;534 }
000016 4770 BX lr
;;;535
ENDP
AREA ||i.USART_SendBreak||, CODE, READONLY, ALIGN=1
USART_SendBreak PROC
;;;624 */
;;;625 void USART_SendBreak(USART_TypeDef* USARTx)
000000 8981 LDRH r1,[r0,#0xc]
;;;626 {
;;;627 /* Check the parameters */
;;;628 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;629
;;;630 /* Send break characters */
;;;631 USARTx->CR1 |= CR1_SBK_Set;
000002 f0410101 ORR r1,r1,#1
000006 8181 STRH r1,[r0,#0xc]
;;;632 }
000008 4770 BX lr
;;;633
ENDP
AREA ||i.USART_SendData||, CODE, READONLY, ALIGN=1
USART_SendData PROC
;;;591 */
;;;592 void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
000000 f3c10208 UBFX r2,r1,#0,#9
;;;593 {
;;;594 /* Check the parameters */
;;;595 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;596 assert_param(IS_USART_DATA(Data));
;;;597
;;;598 /* Transmit Data */
;;;599 USARTx->DR = (Data & (uint16_t)0x01FF);
000004 8082 STRH r2,[r0,#4]
;;;600 }
000006 4770 BX lr
;;;601
ENDP
AREA ||i.USART_SetAddress||, CODE, READONLY, ALIGN=1
USART_SetAddress PROC
;;;475 */
;;;476 void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address)
000000 8a02 LDRH r2,[r0,#0x10]
;;;477 {
;;;478 /* Check the parameters */
;;;479 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;480 assert_param(IS_USART_ADDRESS(USART_Address));
;;;481
;;;482 /* Clear the USART address */
;;;483 USARTx->CR2 &= CR2_Address_Mask;
000002 f64f73f0 MOV r3,#0xfff0
000006 401a ANDS r2,r2,r3
000008 8202 STRH r2,[r0,#0x10]
;;;484 /* Set the USART address node */
;;;485 USARTx->CR2 |= USART_Address;
00000a 8a02 LDRH r2,[r0,#0x10]
00000c 430a ORRS r2,r2,r1
00000e 8202 STRH r2,[r0,#0x10]
;;;486 }
000010 4770 BX lr
;;;487
ENDP
AREA ||i.USART_SetGuardTime||, CODE, READONLY, ALIGN=1
USART_SetGuardTime PROC
;;;640 */
;;;641 void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime)
000000 8b02 LDRH r2,[r0,#0x18]
;;;642 {
;;;643 /* Check the parameters */
;;;644 assert_param(IS_USART_123_PERIPH(USARTx));
;;;645
;;;646 /* Clear the USART Guard time */
;;;647 USARTx->GTPR &= GTPR_LSB_Mask;
000002 b2d2 UXTB r2,r2
000004 8302 STRH r2,[r0,#0x18]
;;;648 /* Set the USART guard time */
;;;649 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]
;;;650 }
00000e 4770 BX lr
;;;651
ENDP
AREA ||i.USART_SetPrescaler||, CODE, READONLY, ALIGN=1
USART_SetPrescaler PROC
;;;660 */
;;;661 void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler)
000000 8b02 LDRH r2,[r0,#0x18]
;;;662 {
;;;663 /* Check the parameters */
;;;664 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;665
;;;666 /* Clear the USART prescaler */
;;;667 USARTx->GTPR &= GTPR_MSB_Mask;
000002 f402427f AND r2,r2,#0xff00
000006 8302 STRH r2,[r0,#0x18]
;;;668 /* Set the USART prescaler */
;;;669 USARTx->GTPR |= USART_Prescaler;
000008 8b02 LDRH r2,[r0,#0x18]
00000a 430a ORRS r2,r2,r1
00000c 8302 STRH r2,[r0,#0x18]
;;;670 }
00000e 4770 BX lr
;;;671
ENDP
AREA ||i.USART_SmartCardCmd||, CODE, READONLY, ALIGN=1
USART_SmartCardCmd PROC
;;;679 */
;;;680 void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState)
000000 b121 CBZ r1,|L26.12|
;;;681 {
;;;682 /* Check the parameters */
;;;683 assert_param(IS_USART_123_PERIPH(USARTx));
;;;684 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;685 if (NewState != DISABLE)
;;;686 {
;;;687 /* Enable the SC mode by setting the SCEN bit in the CR3 register */
;;;688 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 |L26.22|
|L26.12|
;;;689 }
;;;690 else
;;;691 {
;;;692 /* Disable the SC mode by clearing the SCEN bit in the CR3 register */
;;;693 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]
|L26.22|
;;;694 }
;;;695 }
000016 4770 BX lr
;;;696
ENDP
AREA ||i.USART_SmartCardNACKCmd||, CODE, READONLY, ALIGN=1
USART_SmartCardNACKCmd PROC
;;;704 */
;;;705 void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState)
000000 b121 CBZ r1,|L27.12|
;;;706 {
;;;707 /* Check the parameters */
;;;708 assert_param(IS_USART_123_PERIPH(USARTx));
;;;709 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;710 if (NewState != DISABLE)
;;;711 {
;;;712 /* Enable the NACK transmission by setting the NACK bit in the CR3 register */
;;;713 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 |L27.22|
|L27.12|
;;;714 }
;;;715 else
;;;716 {
;;;717 /* Disable the NACK transmission by clearing the NACK bit in the CR3 register */
;;;718 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]
|L27.22|
;;;719 }
;;;720 }
000016 4770 BX lr
;;;721
ENDP
AREA ||i.USART_StructInit||, CODE, READONLY, ALIGN=1
USART_StructInit PROC
;;;280 */
;;;281 void USART_StructInit(USART_InitTypeDef* USART_InitStruct)
000000 f44f5116 MOV r1,#0x2580
;;;282 {
;;;283 /* USART_InitStruct members default value */
;;;284 USART_InitStruct->USART_BaudRate = 9600;
000004 6001 STR r1,[r0,#0]
;;;285 USART_InitStruct->USART_WordLength = USART_WordLength_8b;
000006 2100 MOVS r1,#0
000008 8081 STRH r1,[r0,#4]
;;;286 USART_InitStruct->USART_StopBits = USART_StopBits_1;
00000a 80c1 STRH r1,[r0,#6]
;;;287 USART_InitStruct->USART_Parity = USART_Parity_No ;
00000c 8101 STRH r1,[r0,#8]
;;;288 USART_InitStruct->USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
00000e 210c MOVS r1,#0xc
000010 8141 STRH r1,[r0,#0xa]
;;;289 USART_InitStruct->USART_HardwareFlowControl = USART_HardwareFlowControl_None;
000012 2100 MOVS r1,#0
000014 8181 STRH r1,[r0,#0xc]
;;;290 }
000016 4770 BX lr
;;;291
ENDP
AREA ||i.USART_WakeUpConfig||, CODE, READONLY, ALIGN=1
USART_WakeUpConfig PROC
;;;498 */
;;;499 void USART_WakeUpConfig(USART_TypeDef* USARTx, uint16_t USART_WakeUp)
000000 8982 LDRH r2,[r0,#0xc]
;;;500 {
;;;501 /* Check the parameters */
;;;502 assert_param(IS_USART_ALL_PERIPH(USARTx));
;;;503 assert_param(IS_USART_WAKEUP(USART_WakeUp));
;;;504
;;;505 USARTx->CR1 &= CR1_WAKE_Mask;
000002 f24f73ff MOV r3,#0xf7ff
000006 401a ANDS r2,r2,r3
000008 8182 STRH r2,[r0,#0xc]
;;;506 USARTx->CR1 |= USART_WakeUp;
00000a 8982 LDRH r2,[r0,#0xc]
00000c 430a ORRS r2,r2,r1
00000e 8182 STRH r2,[r0,#0xc]
;;;507 }
000010 4770 BX lr
;;;508
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -