430怎么像51那样对I/O口自由的进行位操作 比如 sbit LCD_RW=P2^0; //LCD读写控制 可以直接LCD_RW=1 msp430 怎么能达到这个效果
gaoyang9992006:
你可以利用宏完成类似的操作,因为430的IO跟51不同,驱动能力更强,但是操作上需要配置输入,输出,以及上拉电阻都可以配置,所以你可以通过宏,将若干操作作为一组。你去下载个G2xx系列的例子看看吧。很容易懂。
gaoyang9992006:
回复 user1866843:
我知道,我的意思是你使用逻辑组合操作,然后用宏替换,表面上看着就是一条指令。当然了,你想完全这么做,肯定是无法实现的。目前只有51有这个功能。
user5213158:
回复 gaoyang9992006:
怎么组合 能举个例吗
user5213158:
回复 gaoyang9992006:
能举个例吗
user1866843:
回复 gaoyang9992006:
从题主的问题可以看出,其应该是对msp430这种蹩脚的端口赋值方式产生疑问,为什么不能像51直接赋值0或者1这种直观的方式来实现控制。是编译器的问题吗,或者是IAR封装不够人性化?其实这个时候需要直接为他指明背后的原因:位操作的问题。
就像有人问,为什么不能将电脑产生的热量变成电能,再给电脑用,这样能量也守恒啊。这个时候应该直接告诉背后的原因:根据热力学第二定律,造不出第二类永动机。
jiujun sun:
先读I/O对应的寄存器,在对该寄存器进行相应的位进行操作,将结果写入所对应的/O寄存器
Hao Mengzhen:
回复 user5213158:
用逻辑运算符号,比如按位与,按位或,异或,同或等,其本质不是位操作,但最终运算结果只影响某一位或某几位。
例如P1OUT |= BIT0; //把P1.0引脚置1
灰小子:
从51转到msp430,总会有些 不习惯。但随着深入学习,这个过程很快就会过去的。
不知道楼主用的哪个型号?有些系列官方有提供库函数,推荐使用库函数,上手可能更快一些
TI中文支持网



