STM32的端口配置

2019-03-23 17:38发布

最近开始接触STM32,在端口配置的这一部分有个问题想请教一下大家:STM32单片机的端口为什么不能像51或者PIC单片机那样呢,端口需要什么值,直接给端口赋值就是了,为什么还有'|'  '&'以及‘ <<’  '>>'这样的符号的参与呢?看数据手册说,STM32必须以32位字被访问,不明白什么意思,请各位大牛指点一下吧,谢谢!
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
她叫小红
1楼-- · 2019-03-24 08:42
 精彩回答 2  元偷偷看……
huaiqiao
2楼-- · 2019-03-24 11:55
“STM32单片机的端口为什么不能像51或者PIC单片机那样呢,端口需要什么值,直接给端口赋值就是了,为什么还有'|'  '&'以及‘ <<’  '>>'这样的符号的参与呢?”

--->如下是我的回答:
1、即便是51,PIC(pic我没有操作过),哪有直接给端口赋值的。我给你举个例子。就拿51来说,P0_0(前好几年的这个地方是P0_0被 sbit 成别的,如LED等等的,这里不必纠结,我只是拿来举例)。P0_0 |= 0x01 。
从C语言的角度你有想过为什么吗?。按位或,就是为了操作需要的那个位,而不影响其他位。

同样滴。如果用到stm32的某个IO,是不是对于寄存器操作来说,位移操作相对比较简单呢。
这个我觉得可能是你对C语言的理解不够深刻吧。

“STM32必须以32位字被访问”

----->这个你看用户手册中,寄存器就知道,32位的寄存器该怎么操作。如果习惯寄存器操作,我觉得不是咬文爵字,而是你要会操作寄存器。这是我个人的看法。
emily_1105
3楼-- · 2019-03-24 12:48
huaiqiao 发表于 2017-6-27 11:27
“STM32单片机的端口为什么不能像51或者PIC单片机那样呢,端口需要什么值,直接给端口赋值就是了,为什么还 ...

奥 讲解深刻,谢谢您!继续学习!
emily_1105
4楼-- · 2019-03-24 14:51
 精彩回答 2  元偷偷看……
emily_1105
5楼-- · 2019-03-24 14:51
ywlzh 发表于 2017-6-27 10:28
这就是规则

就像'|'  '&'以及‘

恩 谢谢您,尊重规则,学习规则!
lambo119
6楼-- · 2019-03-24 19:36
你也可以不用'|'  '&',但是想要直接错误32位宽度的寄存器你自己得算多久?如果用上'|'  '&',你看看你运算量是否有减少。

一周热门 更多>