⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_usart.txt

📁 STM32手持式示波器源代码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
;;;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 + -