一:上电后初始化后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>
即可!
文章评论(0条评论)
登录后参与讨论