智能车制作

标题: 软件新手,对这样的io口定义不懂 [打印本页]

作者: mdgs    时间: 2012-10-26 13:46
标题: 软件新手,对这样的io口定义不懂
[attach]33187[/attach]原来是搞硬件的,刚开始接触软件,在论坛下载了一些无线的资料,对这样的io口定义不懂呀,学长们能不能详细讲讲,不是直接就可以定义了,为什么还要用移位呀,移位搞的我越发不明白
作者: turf456    时间: 2012-10-26 14:03
单片机对IO口没有位操作,就用这种比较方便的表示方法。
作者: zjh328986199    时间: 2012-10-26 14:48
例PORTE |= (1<<4);
的意思是:将PORTE这个寄存器的第四位置位。
PORTE这个寄存器的第四位其实就是映射到E端口的第四管脚。

综上:该语句的意思是将E端口的第四管脚置位。
同理 &= ~  为清零。

就是C语言的位操作而已。

和PORTE_PE4 = 0;
PORTE_PE4 = 1;是一样的。
作者: jiyiboloann    时间: 2012-10-26 16:12
zjh328986199 发表于 2012-10-26 14:48
例PORTE |= (1

楼上们均为正解

作者: youmin90s    时间: 2012-10-26 16:31
都是牛人
作者: xinquan456    时间: 2012-10-26 20:32
本帖最后由 xinquan456 于 2012-10-26 20:34 编辑

3楼正解,看定义时注意中英文注释,read ,high ,low
1<<4,00000001,左移四位
作者: 王榘    时间: 2012-10-26 23:04
牛人

作者: mdgs    时间: 2012-10-26 23:56
turf456 发表于 2012-10-26 14:03
单片机对IO口没有位操作,就用这种比较方便的表示方法。

恩  知道了  在论坛里经常看见你,谢谢呀

作者: mdgs    时间: 2012-10-26 23:58
zjh328986199 发表于 2012-10-26 14:48
例PORTE |= (1

谢谢,原来都是一样的表示方法呀,明白了
作者: sdlibin007@qq.c    时间: 2012-10-27 13:04
说实话我看到这种定义很是头疼,好在我主要负责硬件电路设计,程序调试是队友负责
作者: 暖暖10312138    时间: 2013-4-14 12:30





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2