完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的学习板4个LED对应GPF0-3,4个按键对应GPF4-7,以下程序是我根据完全手册84页的程序修改:
#define GPFCON (*(volatile unsigned long *)0x56000050) #define GPFDAT (*(volatile unsigned long *)0x56000054) /* * LED1-4对应GPF0、GPF1、GPF2、GPF3 */ #define GPF0_out (1<<(0*2)) #define GPF1_out (1<<(1*2)) #define GPF2_out (1<<(2*2)) #define GPF3_out (1<<(3*2)) /* * K1-K4对应GPF4、GPF5、GPF6、GPF7 */ #define GPF4_in ~(3<<(4*2)) #define GPF5_in ~(3<<(5*2)) #define GPF6_in ~(3<<(6*2)) #define GPF7_in ~(3<<(7*2)) int main() { unsigned long dwDat; // LED1-LED4对应的4根引脚设为输出, K1-K4对应的4根引脚设为输入 GPFCON = GPF0_out | GPF1_out | GPF2_out | GPF3_out | ( GPF4_in & GPF5_in & GPF6_in & GPF7_in ) ; while(1) { //若Kn为0(表示按下),则令LEDn为0(表示点亮) dwDat = GPFDAT; // 读取GPF4-7管脚电平状态 if (dwDat & (1<<4)) // K1没有按下 GPFDAT |= (1<<0); // LED1熄灭 else GPFDAT &= ~(1<<0); // LED1点亮 if (dwDat & (1<<5)) // K2没有按下 GPFDAT |= (1<<1); // LED2熄灭 else GPFDAT &= ~(1<<1); // LED2点亮 dwDat = GPFDAT; // 读取GPF管脚电平状态 if (dwDat & (1<<6)) // K3没有按下 GPFDAT |= (1<<2); // LED3熄灭 else GPFDAT &= ~(1<<2); // LED3点亮 if (dwDat & (1<<7)) // K4没有按下 GPFDAT |= (1<<3); // LED4熄灭 else GPFDAT &= ~(1<<3); // LED4点亮 } return 0; } 但是烧写到nandflash中却没有反应,求指点 |
|
相关推荐
2个回答
|
|
新手个人见解,一:读取GPF管脚电平状态只需要读取一次就行,区别在于你的I/O口控制的LED灯、按键与韦老师的不一样。(不过这应该不是你出问题的原因,只是个瑕疵)
二:你是这下了这段程序到NAND flash里面吗?还需要课本前面点亮LEd时所需要的汇编引导程序,是不是利用Makefile将这引导程序和你这段修改后的程序一起编译了? |
|
|
|
问题已经解决了,将GPFCON = GPF0_out | GPF1_out | GPF2_out | GPF3_out | ( GPF4_in & GPF5_in & GPF6_in & GPF7_in ) ;
改为GPFCON = GPF0_out | GPF1_out | GPF2_out | GPF3_out &( GPF4_in & GPF5_in & GPF6_in & GPF7_in ) ;即可 一时间没留意到是这里的问题,瞎搞一通,浪费了不少时间 |
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2161 浏览 6 评论
1970 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4524 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 08:18 , Processed in 0.986528 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号