很奇怪的事情,是这样的:
在OAL初始化里添加了对GPIO的操作,很简单的操作,就是拉高拉低的操作;
写代码的地方是在OEMInit函数里的OALTimerInit,里面对GPB2操作(电路上接的是蜂鸣器),操作顺序如下:
1.设置GPB的控制寄存器,设定其为输出;
2.设定GPB的DATA寄存器使GPB2输出高电平;
接下来很奇怪的事情,为了证明操作成功,在对GPB的DATA寄存器设定值后,后面用while(1),企图让程序停在此处,但是当添加while死循环时,IO无任何输出,去掉while死循环,IO有输出;
很奇怪,一个while的死循环能让IO输出无反应?
拜各位~
1. 你在 OALTimerInit 內的 GPIO 設定有問題, 所以沒輸出, 可否將程式碼放上來, 大家參詳
2. 拿掉 while(1) 後, 繼續往下跑, 所以是不知哪一個地方有輸出了
"很奇怪,一个while的死循环能让IO输出无反应?" 這種問題是不會的, 所以一定是哪裡搞錯了
Paul, Chao @ Tehcware
楼主,你直接操作它的虚拟地址,不用while(1),我经常这样做,甚至中断,主频等我都可以用应用程序控制,