打印
[STM32F3]

吐槽一下STM32F3

[复制链接]
4186|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yoyofair|  楼主 | 2013-12-1 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直认为Cortex-M系列的bit-band就是一个神器,可以很方便的进行位操作,尤其是GPIO的位操作。STM32F1些列都是可以直接bit-band,用起来屡试不爽。
最近一个项目要用到STM32F3,结果悲剧了GPIO的地址在0x48000000以上,不能够使用bit-band的方法来操作GPIO。真不知道是ST在设计的时候脑残了还是有别的微言大义。还是本来就可以bit-band,而是我脑残了。
沙发
pattywu| | 2013-12-1 13:12 | 只看该作者
你脑残了。
GPIO的位区操作,并不比使用【位设置/清除寄存器(BSRR)】、【位清除寄存器(BRR)】快。
比如:同时清除或设置GPIO的多个引脚,位区反而慢。

使用特权

评论回复
板凳
kseeker| | 2013-12-1 13:41 | 只看该作者
快是不快,但是方便多了。

使用特权

评论回复
地板
戈卫东| | 2013-12-1 13:54 | 只看该作者
其实也不见得方便多少.
我就从来没有感觉它有多好.

使用特权

评论回复
5
限量_个性。| | 2013-12-1 14:37 | 只看该作者
需要就或下,不需要就取反,我觉得这样挺方便的~呵呵~

使用特权

评论回复
6
myxiaonia| | 2013-12-1 15:07 | 只看该作者
pattywu 发表于 2013-12-1 13:12
你脑残了。
GPIO的位区操作,并不比使用【位设置/清除寄存器(BSRR)】、【位清除寄存器(BRR)】快。
比如 ...

如果我要控制任意几路引脚拉高或拉低,又需要统一的设置,又怎么操作

使用特权

评论回复
7
yoyofair|  楼主 | 2013-12-1 20:22 | 只看该作者
不是快不快的问题,感觉用起来不方便,比如在跑流水灯实验中的8个LED在在GPIOA,B,C,D,E,F中有一个或两个,单纯用BSRR和BRR会把程序写的有点长,但是用bit-band就不一样了,弄成一个数组,操作数组就搞定了。

使用特权

评论回复
8
yoyofair|  楼主 | 2013-12-1 20:23 | 只看该作者
pattywu 发表于 2013-12-1 13:12
你脑残了。
GPIO的位区操作,并不比使用【位设置/清除寄存器(BSRR)】、【位清除寄存器(BRR)】快。
比如 ...

不是快不快的问题,感觉用起来不方便,比如在跑流水灯实验中的8个LED在在GPIOA,B,C,D,E,F中有一个或两个,单纯用BSRR和BRR会把程序写的有点长,但是用bit-band就不一样了,弄成一个数组,操作数组就搞定了。

使用特权

评论回复
9
crazybee| | 2014-11-6 22:34 | 只看该作者
M3 r2p1 和 m4 这个功能变成厂家可选项了。。。

使用特权

评论回复
10
shdjdq| | 2014-11-7 07:48 | 只看该作者
yoyofair 发表于 2013-12-1 20:23
不是快不快的问题,感觉用起来不方便,比如在跑流水灯实验中的8个LED在在GPIOA,B,C,D,E,F中有一个或 ...

BSRR是可以用数组来赋值的,低16位用short类型,高16位统一用清零数据,最好不要用BRR,它不怎么通用。

使用特权

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

本版积分规则

18

主题

55

帖子

0

粉丝