📄 stm32f10x_usart.lst
字号:
518 USARTx->CR1 |= CR1_SBK_Set;
\ USART_SendBreak:
\ 00000000 8189 LDRH R1,[R0, #+12]
\ 00000002 51F00101 ORRS R1,R1,#0x1
\ 00000006 8181 STRH R1,[R0, #+12]
519 }
\ 00000008 7047 BX LR ;; return
520
521 /*******************************************************************************
522 * Function Name : USART_SetGuardTime
523 * Description : Sets the specified USART guard time.
524 * Input : - USARTx: where x can be 1, 2 or 3 to select the USART
525 * peripheral.
526 * - USART_GuardTime: specifies the guard time.
527 * Output : None
528 * Return : None
529 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
530 void USART_SetGuardTime(USART_TypeDef* USARTx, u8 USART_GuardTime)
531 {
532 /* Clear the USART Guard time */
533 USARTx->GTPR &= GTPR_LSB_Mask;
\ USART_SetGuardTime:
\ 00000000 028B LDRH R2,[R0, #+24]
\ 00000002 D2B2 UXTB R2,R2 ;; ZeroExtS R2,R2,#+24,#+24
\ 00000004 0283 STRH R2,[R0, #+24]
534 /* Set the USART guard time */
535 USARTx->GTPR |= (u16)((u16)USART_GuardTime << 0x08);
\ 00000006 028B LDRH R2,[R0, #+24]
\ 00000008 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 0000000A 89B2 UXTH R1,R1 ;; ZeroExtS R1,R1,#+16,#+16
\ 0000000C 52EA0122 ORRS R2,R2,R1, LSL #+8
\ 00000010 0283 STRH R2,[R0, #+24]
536 }
\ 00000012 7047 BX LR ;; return
537
538 /*******************************************************************************
539 * Function Name : USART_SetPrescaler
540 * Description : Sets the system clock prescaler.
541 * Input : - USARTx: where x can be 1, 2 or 3 to select the USART
542 * peripheral.
543 * - USART_Prescaler: specifies the prescaler clock.
544 * Output : None
545 * Return : None
546 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
547 void USART_SetPrescaler(USART_TypeDef* USARTx, u8 USART_Prescaler)
548 {
549 /* Clear the USART prescaler */
550 USARTx->GTPR &= GTPR_MSB_Mask;
\ USART_SetPrescaler:
\ 00000000 028B LDRH R2,[R0, #+24]
\ 00000002 12F47F42 ANDS R2,R2,#0xFF00
\ 00000006 0283 STRH R2,[R0, #+24]
551 /* Set the USART prescaler */
552 USARTx->GTPR |= USART_Prescaler;
\ 00000008 028B LDRH R2,[R0, #+24]
\ 0000000A C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 0000000C 0A43 ORRS R2,R2,R1
\ 0000000E 0283 STRH R2,[R0, #+24]
553 }
\ 00000010 7047 BX LR ;; return
554
555 /*******************************************************************************
556 * Function Name : USART_SmartCardCmd
557 * Description : Enables or disables the USART抯 Smart Card mode.
558 * Input : - USARTx: where x can be 1, 2 or 3 to select the USART
559 * peripheral.
560 * - NewState: new state of the Smart Card mode.
561 * This parameter can be: ENABLE or DISABLE.
562 * Output : None
563 * Return : None
564 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
565 void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState)
566 {
567 /* Check the parameters */
568 assert_param(IS_FUNCTIONAL_STATE(NewState));
569
570 if (NewState != DISABLE)
\ USART_SmartCardCmd:
\ 00000000 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000002 0029 CMP R1,#+0
\ 00000004 04D0 BEQ.N ??USART_SmartCardCmd_0
571 {
572 /* Enable the SC mode by setting the SCEN bit in the CR3 register */
573 USARTx->CR3 |= CR3_SCEN_Set;
\ 00000006 828A LDRH R2,[R0, #+20]
\ 00000008 52F02002 ORRS R2,R2,#0x20
\ 0000000C 8282 STRH R2,[R0, #+20]
\ 0000000E 03E0 B.N ??USART_SmartCardCmd_1
574 }
575 else
576 {
577 /* Disable the SC mode by clearing the SCEN bit in the CR3 register */
578 USARTx->CR3 &= CR3_SCEN_Reset;
\ ??USART_SmartCardCmd_0:
\ 00000010 828A LDRH R2,[R0, #+20]
\ 00000012 .... LDR.N R3,??DataTable2 ;; 0xffdf
\ 00000014 1340 ANDS R3,R3,R2
\ 00000016 8382 STRH R3,[R0, #+20]
579 }
580 }
\ ??USART_SmartCardCmd_1:
\ 00000018 7047 BX LR ;; return
581
582 /*******************************************************************************
583 * Function Name : USART_SmartCardNACKCmd
584 * Description : Enables or disables NACK transmission.
585 * Input : - USARTx: where x can be 1, 2 or 3 to select the USART
586 * peripheral.
587 * - NewState: new state of the NACK transmission.
588 * This parameter can be: ENABLE or DISABLE.
589 * Output : None
590 * Return : None
591 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
592 void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState)
593 {
594 /* Check the parameters */
595 assert_param(IS_FUNCTIONAL_STATE(NewState));
596
597 if (NewState != DISABLE)
\ USART_SmartCardNACKCmd:
\ 00000000 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000002 0029 CMP R1,#+0
\ 00000004 04D0 BEQ.N ??USART_SmartCardNACKCmd_0
598 {
599 /* Enable the NACK transmission by setting the NACK bit in the CR3 register */
600 USARTx->CR3 |= CR3_NACK_Set;
\ 00000006 828A LDRH R2,[R0, #+20]
\ 00000008 52F01002 ORRS R2,R2,#0x10
\ 0000000C 8282 STRH R2,[R0, #+20]
\ 0000000E 03E0 B.N ??USART_SmartCardNACKCmd_1
601 }
602 else
603 {
604 /* Disable the NACK transmission by clearing the NACK bit in the CR3 register */
605 USARTx->CR3 &= CR3_NACK_Reset;
\ ??USART_SmartCardNACKCmd_0:
\ 00000010 828A LDRH R2,[R0, #+20]
\ 00000012 024B LDR.N R3,??USART_SmartCardNACKCmd_2 ;; 0xffef
\ 00000014 1340 ANDS R3,R3,R2
\ 00000016 8382 STRH R3,[R0, #+20]
606 }
607
608 }
\ ??USART_SmartCardNACKCmd_1:
\ 00000018 7047 BX LR ;; return
\ 0000001A 00BF Nop
\ ??USART_SmartCardNACKCmd_2:
\ 0000001C EFFF0000 DC32 0xffef
609
610 /*******************************************************************************
611 * Function Name : USART_HalfDuplexCmd
612 * Description : Enables or disables the USART抯 Half Duplex communication.
613 * Input : - USARTx: where x can be 1, 2 or 3 to select the USART
614 * peripheral.
615 * - NewState: new state of the USART Communication.
616 * This parameter can be: ENABLE or DISABLE.
617 * Output : None
618 * Return : None
619 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
620 void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState)
621 {
622 /* Check the parameters */
623 assert_param(IS_FUNCTIONAL_STATE(NewState));
624
625 if (NewState != DISABLE)
\ USART_HalfDuplexCmd:
\ 00000000 C9B2 UXTB R1,R1 ;; ZeroExtS R1,R1,#+24,#+24
\ 00000002 0029 CMP R1,#+0
\ 00000004 04D0 BEQ.N ??USART_HalfDuplexCmd_0
626 {
627 /* Enable the Half-Duplex mode by setting the HDSEL bit in the CR3 register */
628 USARTx->CR3 |= CR3_HDSEL_Set;
\ 00000006 828A LDRH R2,[R0, #+20]
\ 00000008 52F00802 ORRS R2,R2,#0x8
\ 0000000C 8282 STRH R2,[R0, #+20]
\ 0000000E 03E0 B.N ??USART_HalfDuplexCmd_1
629 }
630 else
631 {
632 /* Disable the Half-Duplex mode by clearing the HDSEL bit in the CR3 register */
633 USARTx->CR3 &= CR3_HDSEL_Reset;
\ ??USART_HalfDuplexCmd_0:
\ 00000010 828A LDRH R2,[R0, #+20]
\ 00000012 024B LDR.N R3,??USART_HalfDuplexCmd_2 ;; 0xfff7
\ 00000014 1340 ANDS R3,R3,R2
\ 00000016 8382 STRH R3,[R0, #+20]
634 }
635 }
\ ??USART_HalfDuplexCmd_1:
\ 00000018 7047 BX LR ;; return
\ 0000001A 00BF Nop
\ ??USART_HalfDuplexCmd_2:
\ 0000001C F7FF0000 DC32 0xfff7
636
637 /*******************************************************************************
638 * Function Name : USART_IrDAConfig
639 * Description : Configures the USART抯 IrDA interface.
640 * Input : - USARTx: where x can be 1, 2 or 3 to select the USART
641 * peripheral.
642 * - USART_IrDAMode: specifies the IrDA mode.
643 * This parameter can be one of the following values:
644 * - USART_IrDAMode_LowPower
645 * - USART_IrDAMode_Normal
646 * Output : None
647 * Return : None
648 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
649 void USART_IrDAConfig(USART_TypeDef* USARTx, u16 USART_IrDAMode)
650 {
651 /* Check the parameters */
652 assert_param(IS_USART_IRDA_MODE(USART_IrDAMode));
653
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -