建表语句宏定义,下面几条宏定义语句的gpbcon,gpbdat,gpbup地址分别是多少
答案:1 悬赏:20 手机版
解决时间 2021-05-06 15:27
- 提问者网友:浩歌待明月
- 2021-05-06 09:21
建表语句宏定义,下面几条宏定义语句的gpbcon,gpbdat,gpbup地址分别是多少
最佳答案
- 五星知识达人网友:空山清雨
- 2021-05-06 10:46
拿写一个LED程序做例子,GPBCON是用来设置输入输出属性的,也就是说,你不是要控制LED吗?现在你知道了LED的引脚有GPB0,GPB1,而GPBCON又是控制这些引脚的属性,那么现在我们要控制它闪烁就要设置这些引脚的属性为输出。那么如何设置呢?我们的引脚是GPB0,GPB1,而GPBCON是两位控制一个引脚,所以应该是0101(这里手册上说的很清楚)
即GPBCON=0X5(0101二进制换为16进制就是5)
GPBDAT是用来读写引脚的,这个更重要了。我们要控制第一个,第二个引脚。
#define LED3_ON() (GPBDAT &= ~(0x1)) 当LED3亮的时候,把GPBDAT的最后一位置0 (GPB0是最后一位撒)
#define LED4_ON() (GPBDAT &= ~(0x2)) 当LED4亮的时候,把GPBDAT的倒数第二位置0 (GPB1倒数‘第二撒)
#define LED3_OFF() (GPBDAT |= (0x1))当LED3 灭的时候,把GPBDAT的最后一位置1 (GPB0是最后一位撒)
#define LED4_OFF() (GPBDAT |= (0x2))当LED4 灭的时候,把GPBDAT的倒数第二位置1 (GPB1倒数‘第二撒)
GPBUP是端口上拉寄存器 端口上拉寄存器控制着每个端口组的上拉寄存器的使能或禁止,当对应bit为0,这个引脚的上拉寄存器是允许的,当为1时,上拉寄存器是禁止的。
这里我们把它禁止掉GPBUP=0xffff;
说到这里,应该差不多了。可以亮,可以灭,但是要闪烁,我们必须还需要一个延时程序。
delay:
sub r0,r0,#1
cmp r0,#0x0
bne delay
mov pc,lr
现在作为一个LED闪烁的必要准备工作已经完成了,下面就是凑成一个完整的程序就OK了。
即GPBCON=0X5(0101二进制换为16进制就是5)
GPBDAT是用来读写引脚的,这个更重要了。我们要控制第一个,第二个引脚。
#define LED3_ON() (GPBDAT &= ~(0x1)) 当LED3亮的时候,把GPBDAT的最后一位置0 (GPB0是最后一位撒)
#define LED4_ON() (GPBDAT &= ~(0x2)) 当LED4亮的时候,把GPBDAT的倒数第二位置0 (GPB1倒数‘第二撒)
#define LED3_OFF() (GPBDAT |= (0x1))当LED3 灭的时候,把GPBDAT的最后一位置1 (GPB0是最后一位撒)
#define LED4_OFF() (GPBDAT |= (0x2))当LED4 灭的时候,把GPBDAT的倒数第二位置1 (GPB1倒数‘第二撒)
GPBUP是端口上拉寄存器 端口上拉寄存器控制着每个端口组的上拉寄存器的使能或禁止,当对应bit为0,这个引脚的上拉寄存器是允许的,当为1时,上拉寄存器是禁止的。
这里我们把它禁止掉GPBUP=0xffff;
说到这里,应该差不多了。可以亮,可以灭,但是要闪烁,我们必须还需要一个延时程序。
delay:
sub r0,r0,#1
cmp r0,#0x0
bne delay
mov pc,lr
现在作为一个LED闪烁的必要准备工作已经完成了,下面就是凑成一个完整的程序就OK了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯