原创 官方下载的“Micrium-NXP-uCOS-II-LCD-MCB2300”内的几处问题修改

2009-5-5 11:50 3210 6 6 分类: MCU/ 嵌入式

一:上电后初始化后GPIO中的0口和1口不能正常IO
 System Controls and Status register (SCS - 0xE01F C1A0)


设置端口0和1的高速GPIO必须设置SCS的BIT0位为1!
   SCS     |= 0x00000001;   // 置快速FGPIO模式 (0:GPIO; 1:fast GPIO)


二:PCONP外设功率控制寄存器!
PCONP在上电时默认有些部件的电源是禁止的.


下面的列表中在复位后都是关闭的..所以注意要打开相关的位.


ADC
both can controllers
timer 2 and 3
UART 2 and 3
I2S Interface
SD Card
General PURPOSE DMA
Ethernet MAC
USB Controller


官方下载的MCB2300 UC/OS2中发现其中的UART2和3并未设置开启PCONP相应位,所以使用时注意打开相关的位 


三:
官方下载的“Micrium-NXP-uCOS-II-LCD-MCB2300”中的串口程序“probe_rs232c.c”



 //#define  U0RBR              (*(CPU_INT08U *)(U0_BASE     + 0x0000))
 //#define  U0THR              (*(CPU_INT08U *)(U0_BASE     + 0x0000))
 //#define  U0DLL              (*(CPU_INT08U *)(U0_BASE     + 0x0000))
 //#define  U0DLM              (*(CPU_INT08U *)(U0_BASE     + 0x0004))
 //#define  U0IER              (*(CPU_INT08U *)(U0_BASE     + 0x0004))
 //#define  U0IIR              (*(CPU_INT08U *)(U0_BASE     + 0x0008))
 //#define  U0FCR              (*(CPU_INT08U *)(U0_BASE     + 0x0008))
 //#define  U0LCR              (*(CPU_INT08U *)(U0_BASE     + 0x000C))
 //#define  U0LSR              (*(CPU_INT08U *)(U0_BASE     + 0x0014))
 //
//                                                                /* ---------------- UART1 Register Defines ---------------- */
 //#define  U1RBR              (*(CPU_INT08U *)(U1_BASE     + 0x0000))
 //#define  U1THR              (*(CPU_INT08U *)(U1_BASE     + 0x0000))
 //#define  U1DLL              (*(CPU_INT08U *)(U1_BASE     + 0x0000))
 //#define  U1DLM              (*(CPU_INT08U *)(U1_BASE     + 0x0004))
 //#define  U1IER              (*(CPU_INT08U *)(U1_BASE     + 0x0004))
 //#define  U1IIR              (*(CPU_INT08U *)(U1_BASE     + 0x0008))
 //#define  U1FCR              (*(CPU_INT08U *)(U1_BASE     + 0x0008))
 //#define  U1LCR              (*(CPU_INT08U *)(U1_BASE     + 0x000C))
 //#define  U1LSR              (*(CPU_INT08U *)(U1_BASE     + 0x0014))
//
//                                                                /* ---------------- UART2 Register Defines ---------------- */
 //#define  U2RBR              (*(CPU_INT08U *)(U2_BASE     + 0x0000))
 //#define  U2THR              (*(CPU_INT08U *)(U2_BASE     + 0x0000))
 //#define  U2DLL              (*(CPU_INT08U *)(U2_BASE     + 0x0000))
 //#define  U2DLM              (*(CPU_INT08U *)(U2_BASE     + 0x0004))
 //#define  U2IER              (*(CPU_INT08U *)(U2_BASE     + 0x0004))
 //#define  U2IIR              (*(CPU_INT08U *)(U2_BASE     + 0x0008))
 //#define  U2FCR              (*(CPU_INT08U *)(U2_BASE     + 0x0008))
 //#define  U2LCR              (*(CPU_INT08U *)(U2_BASE     + 0x000C))
 //#define  U2LSR              (*(CPU_INT08U *)(U2_BASE     + 0x0014))
//
//                                                                /* ---------------- UART3 Register Defines ---------------- */
 //#define  U3RBR              (*(CPU_INT08U *)(U3_BASE     + 0x0000))
 //#define  U3THR              (*(CPU_INT08U *)(U3_BASE     + 0x0000))
 //#define  U3DLL              (*(CPU_INT08U *)(U3_BASE     + 0x0000))
 //#define  U3DLM              (*(CPU_INT08U *)(U3_BASE     + 0x0004))
 //#define  U3IER              (*(CPU_INT08U *)(U3_BASE     + 0x0004))
 //#define  U3IIR              (*(CPU_INT08U *)(U3_BASE     + 0x0008))
 //#define  U3FCR              (*(CPU_INT08U *)(U3_BASE     + 0x0008))
 //#define  U3LCR              (*(CPU_INT08U *)(U3_BASE     + 0x000C))
 //#define  U3LSR              (*(CPU_INT08U *)(U3_BASE     + 0x0014))



中的“CPU_INT08U ”是8位的地址!!!!错误!!!
更改为使用头文件
#include  <iolpc2378.h>   


即可!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条