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

📄 uarttest.lst

📁 Lpc2103的小程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART     08/May/2006  11:36:39 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  interwork                                            #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\项目文档\LPC2103 开发板\项目文档\LPC210X          #
#                       EK_V2.0\JLINK Program Example\I2C\SRC\UartTest.c     #
#    Command line    =  "E:\项目文档\LPC2103 开发板\项目文档\LPC210X         #
#                       EK_V2.0\JLINK Program Example\I2C\SRC\UartTest.c"    #
#                       -lCN "E:\项目文档\LPC2103 开发板\项目文档\LPC210X    #
#                       EK_V2.0\JLINK Program Example\I2C\Jlink_RAM\List\"   #
#                       -o "E:\项目文档\LPC2103 开发板\项目文档\LPC210X      #
#                       EK_V2.0\JLINK Program Example\I2C\Jlink_RAM\Obj\"    #
#                       -z2 --no_cse --no_unroll --no_inline                 #
#                       --no_code_motion --no_tbaa --no_clustering           #
#                       --no_scheduling --debug --cpu_mode thumb --endian    #
#                       little --cpu ARM7TDMI-S --stack_align 4 --interwork  #
#                       -e --fpu None --dlib_config "C:\Program Files\IAR    #
#                       Systems\Embedded Workbench 4.0                       #
#                       Kickstart\arm\LIB\dl4tptinl8n.h" -I "C:\Program      #
#                       Files\IAR Systems\Embedded Workbench 4.0             #
#                       Kickstart\arm\INC\"                                  #
#    List file       =  E:\项目文档\LPC2103 开发板\项目文档\LPC210X          #
#                       EK_V2.0\JLINK Program Example\I2C\Jlink_RAM\List\Uar #
#                       tTest.lst                                            #
#    Object file     =  E:\项目文档\LPC2103 开发板\项目文档\LPC210X          #
#                       EK_V2.0\JLINK Program Example\I2C\Jlink_RAM\Obj\Uart #
#                       Test.r79                                             #
#                                                                            #
#                                                                            #
##############################################################################

E:\项目文档\LPC2103 开发板\项目文档\LPC210X EK_V2.0\JLINK Program Example\I2C\SRC\UartTest.c
      1          
      2          #define UART_BPS 9600
      3          
      4          #include "..\inc\config.h"
      5          /**********************串口0初始化****************************************/

   \                                 In segment CODE, align 4, keep-with-next
      6          void UART0_Init (void)		
      7          {
   \                     UART0_Init:
   \   00000000   00B5               PUSH        {LR}
      8             U16 Fdiv;
      9          
     10             U0LCR = 0x83;		            // DLAB = 1,可设置波特率
   \   00000002   0E48               LDR         R0,??UART0_Init_0  ;; 0xe000c00c
   \   00000004   8321               MOV         R1,#+0x83
   \   00000006   0170               STRB        R1,[R0, #+0]
     11             Fdiv = (Fpclk / 16)/ UART_BPS;           // 设置波特率
   \   00000008   4820               MOV         R0,#+0x48
   \   0000000A   021C               MOV         R2,R0
     12             U0DLM = Fdiv / 256;							
   \   0000000C   0C4B               LDR         R3,??UART0_Init_0+0x4  ;; 0xe000c004
   \   0000000E   1204               LSL         R2,R2,#+0x10       ;; ZeroExt     R2,R2,#+0x10,#+0x10
   \   00000010   120C               LSR         R2,R2,#+0x10
   \   00000012   101C               MOV         R0,R2
   \   00000014   8021               MOV         R1,#+0x80
   \   00000016   4900               LSL         R1,R1,#+0x1        ;; #+0x100
   \   00000018   ........           _BLF        ??div32_t,??rT??div32_t
   \   0000001C   1970               STRB        R1,[R3, #+0]
     13             U0DLL = Fdiv % 256;	
   \   0000001E   ....               LDR         R3,??DataTable3    ;; 0xe000c000
   \   00000020   1204               LSL         R2,R2,#+0x10       ;; ZeroExt     R2,R2,#+0x10,#+0x10
   \   00000022   120C               LSR         R2,R2,#+0x10
   \   00000024   101C               MOV         R0,R2
   \   00000026   8021               MOV         R1,#+0x80
   \   00000028   4900               LSL         R1,R1,#+0x1        ;; #+0x100
   \   0000002A   ........           _BLF        ??div32_t,??rT??div32_t
   \   0000002E   1870               STRB        R0,[R3, #+0]
     14             U0LCR = 0x03;
   \   00000030   0248               LDR         R0,??UART0_Init_0  ;; 0xe000c00c
   \   00000032   0321               MOV         R1,#+0x3
   \   00000034   0170               STRB        R1,[R0, #+0]
     15          }
   \   00000036   01BC               POP         {R0}
   \   00000038   0047               BX          R0                 ;; return
   \   0000003A   C046               NOP         
   \                     ??UART0_Init_0:
   \   0000003C   0CC000E0           DC32        0xe000c00c
   \   00000040   04C000E0           DC32        0xe000c004
     16          
     17          /***************************从串口0接收数据*********************************/

   \                                 In segment CODE, align 4, keep-with-next
     18          char UART0_GetChar ( void )
     19          {
     20            U8 Rcv_Data;
     21          
     22            while((U0LSR&0x01)==0);                  //等待有效数据
   \                     UART0_GetChar:
   \                     ??UART0_GetChar_0:
   \   00000000   ....               LDR         R1,??DataTable4    ;; 0xe000c014
   \   00000002   0978               LDRB        R1,[R1, #+0]
   \   00000004   C907               LSL         R1,R1,#+0x1F
   \   00000006   FBD5               BPL         ??UART0_GetChar_0
     23            Rcv_Data=U0RBR;                          //读取数据
   \   00000008   ....               LDR         R1,??DataTable3    ;; 0xe000c000
   \   0000000A   0978               LDRB        R1,[R1, #+0]
   \   0000000C   081C               MOV         R0,R1
     24            return(Rcv_Data);
   \   0000000E   0006               LSL         R0,R0,#+0x18       ;; ZeroExt     R0,R0,#+0x18,#+0x18
   \   00000010   000E               LSR         R0,R0,#+0x18
   \   00000012   7047               BX          LR                 ;; return
     25          }
     26          
     27          /***************************从串口0接收字符串*********************************/

   \                                 In segment CODE, align 4, keep-with-next
     28          void UART0_GetString ( U8 *s,U32 n )
     29          {
   \                     UART0_GetString:
   \   00000000   30B5               PUSH        {R4,R5,LR}
   \   00000002   041C               MOV         R4,R0
   \   00000004   0D1C               MOV         R5,R1
     30            for(;n>0;n++)
   \                     ??UART0_GetString_0:
   \   00000006   002D               CMP         R5,#+0
   \   00000008   05D0               BEQ         ??UART0_GetString_1
     31            {
     32              *s++=UART0_GetChar();
   \   0000000A   ........           BL          UART0_GetChar
   \   0000000E   2070               STRB        R0,[R4, #+0]
   \   00000010   641C               ADD         R4,#+0x1
     33            }
   \   00000012   6D1C               ADD         R5,#+0x1
   \   00000014   F7E7               B           ??UART0_GetString_0
     34          }
   \                     ??UART0_GetString_1:
   \   00000016   30BC               POP         {R4,R5}
   \   00000018   01BC               POP         {R0}
   \   0000001A   0047               BX          R0                 ;; return
     35          
     36          /***************************向串口0发送数据*********************************/
     37          

   \                                 In segment CODE, align 4, keep-with-next
     38          void UART0_PutChar ( U32 data)
     39          {
     40            U0THR = data;			    // 发送数据
   \                     UART0_PutChar:
   \   00000000   ....               LDR         R1,??DataTable3    ;; 0xe000c000
   \   00000002   021C               MOV         R2,R0
   \   00000004   0A70               STRB        R2,[R1, #+0]
     41            while( (U0LSR&0x40)==0 );	    // 等待数据发送完毕
   \                     ??UART0_PutChar_0:
   \   00000006   ....               LDR         R1,??DataTable4    ;; 0xe000c014
   \   00000008   0978               LDRB        R1,[R1, #+0]
   \   0000000A   4906               LSL         R1,R1,#+0x19
   \   0000000C   FBD5               BPL         ??UART0_PutChar_0
     42          }
   \   0000000E   7047               BX          LR                 ;; return
     43          
     44          /***************************向串口0发送字符串*********************************/

   \                                 In segment CODE, align 4, keep-with-next
     45          void  UART0_PutString(char *str)
     46          {
   \                     UART0_PutString:
   \   00000000   10B5               PUSH        {R4,LR}
   \   00000002   041C               MOV         R4,R0
     47            while(*str !='\0')
   \                     ??UART0_PutString_0:
   \   00000004   2078               LDRB        R0,[R4, #+0]
   \   00000006   0028               CMP         R0,#+0
   \   00000008   04D0               BEQ         ??UART0_PutString_1
     48            {
     49              UART0_PutChar(*str++);
   \   0000000A   2078               LDRB        R0,[R4, #+0]
   \   0000000C   ........           BL          UART0_PutChar
   \   00000010   641C               ADD         R4,#+0x1
   \   00000012   F7E7               B           ??UART0_PutString_0
     50            }

⌨️ 快捷键说明

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