打印

如何把零散的不用的IO整合在一起,统一操作呢

[复制链接]
3761|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
白丁野老|  楼主 | 2015-11-23 20:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
麦可可| | 2015-11-23 22:34 | 只看该作者
可以用宏定义实现的

使用特权

评论回复
板凳
blong75| | 2015-11-23 22:56 | 只看该作者
对于你这里所提出的“多个端口赋值”来说,基本上相当于一个无壳的函数。打个比方,例如:
#define SET_PORT_VAL(x) {PTE = x&0x03; PTF = (x>>2)&0x3F;}

使用特权

评论回复
地板
冒泡的鱼儿| | 2015-11-23 22:59 | 只看该作者
写一个赋值函数,先把单独的IO提取出来,再合并

使用特权

评论回复
5
sunriselight| | 2015-11-24 11:16 | 只看该作者
P2 |= 0X10;
P3 &= 0X00;
t = P2 | P3;
这样写就可以了吧

使用特权

评论回复
6
葫芦娃75| | 2015-11-24 11:19 | 只看该作者
可以用位域的办法来实现的,用结构体

使用特权

评论回复
7
eggbiscuit| | 2015-11-24 11:21 | 只看该作者

#define GPIO_BIT_0(x) GPIO_SET(PORTB,PB4,x)
#define GPIO_BIT_1(x) GPIO_SET(PORTB,PB5,x)  
......
然後寫一個function
void GPIO_SetState(uint8_t Data)
{
GPIO_BIT_0((Data&0x01));
GPIO_BIT_1((Data&0x02));
GPIO_BIT_2((Data&0x04));
.......
}
要用就呼叫
GPIO_SetState(0x55);
大概就是這樣子的方式吧

使用特权

评论回复
评论
肥羊 2019-3-19 09:27 回复TA
还行 
8
september7| | 2015-11-24 11:25 | 只看该作者
可以将IO口引脚结构对应到自定义结构中,然后定义不同IO口一个For循环解决。GPIO_WriteBit(GPIOx, GPIO_InitStruct.GPIO_Pin, (BitAction)(dat));

使用特权

评论回复
9
蜕变吧| | 2015-11-24 22:59 | 只看该作者
eggbiscuit 发表于 2015-11-24 11:21

#define GPIO_BIT_0(x) GPIO_SET(PORTB,PB4,x)
#define GPIO_BIT_1(x) GPIO_SET(PORTB,PB5,x)  

不错,学习了,这是个 很好的办法。

使用特权

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

本版积分规则

12

主题

195

帖子

1

粉丝