各位大侠,
如题所示。
将一个16进制的数输出到STM32的16个引脚上(不在同一个系列IO上面,比如有PA,也有PB,PE),怎么写代码最快呢?
目前我的思路是:引脚使用位带操作。对16进制数实行位与(比如和0X01位与),得到一个新的16进制数。但这个新的16进制数不能直接赋值给引脚,因为数据不匹配,还要判断下。示例代码如下:
u16 a=0x01; u16 m=0x98;
u16 r=0x00;
r=m&a;//得到m的最后一位数字是0还是1,r的结果为0X00或者0X01.
if(r==0) PEOUT3=0; else PEOUT3=1;
由于是对16个引脚赋值,所有以上类似的代码书写16次。
问题:以上代码和思路效率怎么样,更快的执行代码怎么写呢?多谢啊!
|