打印
[ZLG-MCU]

为什么LM3s615输出0是用GPIOPinWrite(LED_PIN , 0 << 3)?

[复制链接]
3362|3
手机看帖
扫描二维码
随时随地手机跟帖
沙发
Andy1990zx| | 2008-4-17 19:07 | 只看该作者

同问

<<和 >>是什么意思?
记得以前学C时没有见过这两个符号啊
还有HWREG之类的地址操作,ZLG的教材也没有详细讲的
搜索时会自动屏蔽这类特殊符号,无从知道了

使用特权

评论回复
板凳
zlgmcu| | 2008-4-18 09:05 | 只看该作者

<<和>>分别为左移和右移,这是C语言基本语法,很常用的

LED_PIN的定义是:

#define  LED_PIN                GPIO_PORTA_BASE , GPIO_PIN_3

GPIOPinWrite(LED_PIN , 1 << 3);是表示,设置PA3引脚输出高电平,如果要使它输出低电平则:
GPIOPinWrite(LED_PIN , 0 << 3);

其实“0 << 3”还是0,只是为了更好理解,写成下面的形式也可以:
GPIOPinWrite(LED_PIN , 0);

使用特权

评论回复
地板
zlgmcu| | 2008-4-18 16:30 | 只看该作者

采用类似于“1 << 3”移位的办法比较直观


// PA3输出高电平
GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN3 , 1 << 3);

// PA3输出低电平
GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN3 , 0 << 3);

// PA3和PA5同时输出高电平
GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN3 | GPIO_PIN5 , (1 << 3) | (1 << 5));

// PA3输出低电平,PA5输出高电平
GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN3 | GPIO_PIN5 , (0 << 3) | (1 << 5));

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

103

帖子

0

粉丝