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

📄 probe_rs232c.txt

📁 ucos2.86版本结合STM板极支持包
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;321        usart_init.USART_Mode                = USART_Mode_Rx | USART_Mode_Tx;
;;;322        usart_init.USART_Clock               = USART_Clock_Disable;
;;;323        usart_init.USART_CPOL                = USART_CPOL_Low;
;;;324        usart_init.USART_CPHA                = USART_CPHA_2Edge;
;;;325        usart_init.USART_LastBit             = USART_LastBit_Disable;
;;;326    
;;;327        USART_Init(USART3, &usart_init);
;;;328        USART_Cmd(USART3, ENABLE);
;;;329    
;;;330        nvic_init.NVIC_IRQChannel                   = USART3_IRQChannel;
;;;331        nvic_init.NVIC_IRQChannelPreemptionPriority = 0;
;;;332        nvic_init.NVIC_IRQChannelSubPriority        = 0;
;;;333        nvic_init.NVIC_IRQChannelCmd                = ENABLE;
;;;334        NVIC_Init(&nvic_init);
;;;335    #endif
;;;336    }
00009e  b008              ADD      sp,sp,#0x20
0000a0  bd70              POP      {r4-r6,pc}
;;;337    
                          ENDP

                  ProbeRS232_RxTxISRHandler PROC
;;;355    void  ProbeRS232_RxTxISRHandler (void)
;;;356    {
0000a2  b510              PUSH     {r4,lr}
;;;357        CPU_INT08U  rx_data;
;;;358        CPU_SR      cpu_sr;
;;;359    
;;;360    
;;;361        CPU_CRITICAL_ENTER();                                       /* Tell uC/OS-II that we are starting an ISR                */
0000a4  f7fff7ff          BL       CPU_SR_Save
;;;362        OSIntNesting++;
0000a8  4925              LDR      r1,|L1.320|
0000aa  780a              LDRB     r2,[r1,#0]  ; OSIntNesting
0000ac  1c52              ADDS     r2,r2,#1
0000ae  700a              STRB     r2,[r1,#0]  ; OSIntNesting
;;;363        CPU_CRITICAL_EXIT();
0000b0  f7fff7ff          BL       CPU_SR_Restore
;;;364    
;;;365    
;;;366    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
;;;367        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {
0000b4  4c21              LDR      r4,|L1.316|
0000b6  f240f240          MOV      r1,#0x525
0000ba  4620              MOV      r0,r4
0000bc  f7fff7ff          BL       USART_GetITStatus
0000c0  b150              CBZ      r0,|L1.216|
;;;368    
;;;369            rx_data = USART_ReceiveData(USART1) & 0xFF;             /* Read one byte from the receive data register             */
0000c2  4620              MOV      r0,r4
0000c4  f7fff7ff          BL       USART_ReceiveData
0000c8  b2c0              UXTB     r0,r0
;;;370            ProbeRS232_RxHandler(rx_data);
0000ca  f7fff7ff          BL       ProbeRS232_RxHandler
;;;371    
;;;372            USART_ClearITPendingBit(USART1, USART_IT_RXNE);         /* Clear the USART1 Receive interrupt                       */
0000ce  f240f240          MOV      r1,#0x525
0000d2  4620              MOV      r0,r4
0000d4  f7fff7ff          BL       USART_ClearITPendingBit
                  |L1.216|
;;;373        }
;;;374    
;;;375        if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET) {
0000d8  f240f240          MOV      r1,#0x727
0000dc  4620              MOV      r0,r4
0000de  f7fff7ff          BL       USART_GetITStatus
0000e2  b130              CBZ      r0,|L1.242|
;;;376            ProbeRS232_TxHandler();
0000e4  f7fff7ff          BL       ProbeRS232_TxHandler
;;;377    
;;;378            USART_ClearITPendingBit(USART1, USART_IT_TXE);          /* Clear the USART1 transmit interrupt                      */
0000e8  f240f240          MOV      r1,#0x727
0000ec  4620              MOV      r0,r4
0000ee  f7fff7ff          BL       USART_ClearITPendingBit
                  |L1.242|
;;;379        }
;;;380    #endif
;;;381    
;;;382    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
;;;383        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) {
;;;384    
;;;385            rx_data = USART_ReceiveData(USART2) & 0xFF;             /* Read one byte from the receive data register             */
;;;386            ProbeRS232_RxHandler(rx_data);
;;;387    
;;;388            USART_ClearITPendingBit(USART2, USART_IT_RXNE);         /* Clear the USART1 Receive interrupt                       */
;;;389        }
;;;390    
;;;391        if(USART_GetITStatus(USART2, USART_IT_TXE) != RESET) {
;;;392            ProbeRS232_TxHandler();
;;;393    
;;;394            USART_ClearITPendingBit(USART2, USART_IT_TXE);          /* Clear the USART1 transmit interrupt                      */
;;;395        }
;;;396    #endif
;;;397    
;;;398    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
;;;399        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET) {
;;;400    
;;;401            rx_data = USART_ReceiveData(USART3) & 0xFF;             /* Read one byte from the receive data register             */
;;;402            ProbeRS232_RxHandler(rx_data);
;;;403    
;;;404            USART_ClearITPendingBit(USART3, USART_IT_RXNE);         /* Clear the USART1 Receive interrupt                       */
;;;405        }
;;;406    
;;;407        if(USART_GetITStatus(USART3, USART_IT_TXE) != RESET) {
;;;408            ProbeRS232_TxHandler();
;;;409    
;;;410            USART_ClearITPendingBit(USART3, USART_IT_TXE);          /* Clear the USART1 transmit interrupt                      */
;;;411        }
;;;412    #endif
;;;413    
;;;414        OSIntExit();                                                /* Tell uC/OS-II that we are leaving the ISR                */
0000f2  e8bde8bd          POP      {r4,lr}
0000f6  f7fff7ff          B.W      OSIntExit
;;;415    }
;;;416    
                          ENDP

                  ProbeRS232_RxISRHandler PROC
;;;432    {
;;;433    }
0000fa  4770              BX       lr
;;;434    
                          ENDP

                  ProbeRS232_TxISRHandler PROC
;;;436    {
;;;437    }
0000fc  4770              BX       lr
;;;438    
                          ENDP

                  ProbeRS232_Tx1 PROC
;;;453    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
;;;454        USART_SendData(USART1, c);
0000fe  4601              MOV      r1,r0
000100  480e              LDR      r0,|L1.316|
000102  f7fff7ff          B.W      USART_SendData
;;;455    #endif
;;;456    
;;;457    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
;;;458        USART_SendData(USART2, c);
;;;459    #endif
;;;460    
;;;461    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
;;;462        USART_SendData(USART3, c);
;;;463    #endif
;;;464    }
;;;465    
                          ENDP

                  ProbeRS232_TxIntDis PROC
;;;480    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
;;;481        USART_ITConfig(USART1, USART_IT_TXE, DISABLE);
000106  2200              MOVS     r2,#0
000108  f240f240          MOV      r1,#0x727
00010c  480b              LDR      r0,|L1.316|
00010e  f7fff7ff          B.W      USART_ITConfig
;;;482    #endif
;;;483    
;;;484    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
;;;485        USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
;;;486    #endif
;;;487    
;;;488    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
;;;489        USART_ITConfig(USART3, USART_IT_TXE, DISABLE);
;;;490    #endif
;;;491    }
;;;492    
                          ENDP

                  ProbeRS232_TxIntEn PROC
;;;495    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
;;;496        USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
000112  2201              MOVS     r2,#1
000114  f240f240          MOV      r1,#0x727
000118  4808              LDR      r0,|L1.316|
00011a  f7fff7ff          B.W      USART_ITConfig
;;;497    #endif
;;;498    
;;;499    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
;;;500        USART_ITConfig(USART2, USART_IT_TXE, ENABLE);
;;;501    #endif
;;;502    
;;;503    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
;;;504        USART_ITConfig(USART3, USART_IT_TXE, ENABLE);
;;;505    #endif
;;;506    }
;;;507    
                          ENDP

                  ProbeRS232_RxIntDis PROC
;;;522    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
;;;523        USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
00011e  2200              MOVS     r2,#0
000120  f240f240          MOV      r1,#0x525
000124  4805              LDR      r0,|L1.316|
000126  f7fff7ff          B.W      USART_ITConfig
;;;524    #endif
;;;525    
;;;526    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
;;;527        USART_ITConfig(USART2, USART_IT_RXNE, DISABLE);
;;;528    #endif
;;;529    
;;;530    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
;;;531        USART_ITConfig(USART3, USART_IT_RXNE, DISABLE);
;;;532    #endif
;;;533    }
;;;534    
                          ENDP

                  ProbeRS232_RxIntEn PROC
;;;537    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_1)
;;;538        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
00012a  2201              MOVS     r2,#1
00012c  f240f240          MOV      r1,#0x525
000130  4802              LDR      r0,|L1.316|
000132  f7fff7ff          B.W      USART_ITConfig
;;;539    #endif
;;;540    
;;;541    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_2)
;;;542        USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
;;;543    #endif
;;;544    
;;;545    #if (PROBE_RS232_COMM_SEL == PROBE_RS232_UART_3)
;;;546        USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
;;;547    #endif
;;;548    }
                          ENDP

000136  0000              DCW      0x0000
                  |L1.312|
000138  40010800          DCD      0x40010800
                  |L1.316|
00013c  40013800          DCD      0x40013800
                  |L1.320|
000140  00000000          DCD      OSIntNesting

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -