裸机I/O口初始化顺序问题
本帖最后由 zhouyan1987 于 2012-3-20 11:24 编辑我今天做串口实验的时候,在主程序里加入了LED灯的程序。
LED_Init();
UART0_Init(115200);LED灯的初始化在前灯就可以亮
UART0_Init(115200);
LED_Init();LED灯的初始化在串口初始化之后为什么灯就亮不了了
求指教
void LED_Init()
{
rGPBCON=(rGPBCON&0xf000ff)|0x015400;
}
void UART0_Init(unsigned int baudrate)
{
rGPHCON&=~((3<<4)|(3<<6));
rGPHCON|=((2<<4)|(2<<6));
rGPHUP=0x00;
rULCON0|=0x03;
rUCON0&=0x9FF;
rUCON0=0x05;
rUBRDIV0=(int)((PCLK/baudrate/16)-1);
rURXH0=0;
}
少年,你的把你写的LED_Init();程序写出来啊:)
那两个初始化的程序我都写了 请问下原因 zhouyan1987 发表于 2012-3-19 08:51 static/image/common/back.gif
那两个初始化的程序我都写了 请问下原因
可能是 rGPBDAT中没有赋值吧,复位后 rGPBDAT的内容不确定,你可以在 rGPBCON=(rGPBCON&0xf000ff)|0x015400;后加上一条向rGPBDAT赋值的语句。再查看一下结果。 北极熊 发表于 2012-3-19 12:46 static/image/common/back.gif
可能是 rGPBDAT中没有赋值吧,复位后 rGPBDAT的内容不确定,你可以在 rGPBCON=(rGPBCON&0xf000ff)|0x0154 ...
我在主函数里面对rGPBDAT进行赋值了,而且我在调试的时候看了rGPBDAT的5-8位都是低电平 按说LED灯应该是亮的,可实验的时候串口的初始化跟I/O口初始化前后顺序就导致LED的亮与不亮 把你的程序打包发上来吧,我在板子上试试,这个问题还真奇妙 北极熊 发表于 2012-3-19 22:05 static/image/common/back.gif
把你的程序打包发上来吧,我在板子上试试,这个问题还真奇妙
程序打包了 麻烦你看看 北极熊 发表于 2012-3-19 22:05 static/image/common/back.gif
把你的程序打包发上来吧,我在板子上试试,这个问题还真奇妙
我知道了 启动代码有问题 用系统给的启动代码就可以了 自己写的那一段汇编不够全 有问题 我还是自己在研究下吧 麻烦了 zhouyan1987 发表于 2012-3-21 10:09 static/image/common/back.gif
我知道了 启动代码有问题 用系统给的启动代码就可以了 自己写的那一段汇编不够全 有问题 我还是自己在研究 ...
:)也没帮多少忙 ; 修改CPU总线模式
mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #0xc0000000
mcr p15, 0, r1, c1, c0, 0 借我你的一生 发表于 2012-3-25 14:35 static/image/common/back.gif
; 修改CPU总线模式
mrc p15, 0, r1, c1, c0, 0
orr r1, r1, #0xc0000000
谢谢帮忙 很久没登录了 今天才看到~~
页:
[1]