打印
[STM8]

0X08这个是推挽输出是怎么算出来的

[复制链接]
609|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yinxiangh|  楼主 | 2022-11-25 19:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM8 看别人写的程序 PD_CR1 = 0x08;  // 设置PD3为推挽输出 ,想问下0X08这个是推挽输出是怎么算出来的

使用特权

评论回复
沙发
yinxiangh|  楼主 | 2022-11-25 19:17 | 只看该作者
查了下手册如果是推挽输出DDR =1  CR1=1  CR2=0   但是0X08不知道怎么得来的,求指教

使用特权

评论回复
板凳
chuxh| | 2022-11-25 19:20 | 只看该作者
0x08==0b 0000 1000
你还懂啊?

使用特权

评论回复
地板
xxrs| | 2022-11-25 19:23 | 只看该作者
你要看手册,这个1对应的是哪个位啊?

使用特权

评论回复
5
huangchui| | 2022-11-25 19:25 | 只看该作者
当然是BIT3了,
先不说左边那四个高位,后面的分别称为:BIT3    BIT2   BIT1   BIT0

使用特权

评论回复
6
shimx| | 2022-11-25 19:27 | 只看该作者
PD_CR1这个如果是说设置PD某个位为推挽的那么当然将BIT3置位就是设置PD3为推挽了,这个还需要你在手册里确认一下是不是这个寄存器

使用特权

评论回复
7
huangchui| | 2022-11-25 19:29 | 只看该作者

使用特权

评论回复
8
gongche| | 2022-11-25 19:31 | 只看该作者
你一定看的是这个,这是针对某一位说的,而一个端口有很多位,这里需要将这个8BIT的端口对应的那个位搞定为1,就是BIT3,其他都是0那就是0x08了。

使用特权

评论回复
9
tian111| | 2022-11-25 19:36 | 只看该作者

上面大神回答的真精彩,就是这样,不过如果看手册真不好理解。

使用特权

评论回复
10
zhenykun| | 2022-11-25 19:39 | 只看该作者
原来如此,我一直没搞太懂。

使用特权

评论回复
11
stly| | 2022-11-25 19:42 | 只看该作者
3 2 1 0 对应的就是1000 当然就是8啊

使用特权

评论回复
12
dingy| | 2022-11-25 19:44 | 只看该作者
基本功的问题

使用特权

评论回复
13
stly| | 2022-11-25 19:51 | 只看该作者
多看看代码 就能看懂了

使用特权

评论回复
14
renyaq| | 2022-11-25 19:53 | 只看该作者
代码看的少  多看看就好了啊

使用特权

评论回复
15
renyaq| | 2022-11-25 19:55 | 只看该作者
多看代码 自然能懂

使用特权

评论回复
16
zhenykun| | 2022-11-25 19:58 | 只看该作者
这个是最基础啊  多看看就知道了

使用特权

评论回复
17
yinxiangh|  楼主 | 2022-11-25 20:00 | 只看该作者
搞定了,呵呵,犯了低级错误……

使用特权

评论回复
18
SantaBunny| | 2023-2-20 22:52 | 只看该作者
推挽输出既可以输出低电平,也可以输出高电平,可以直接驱动功耗不大的数字器件。

使用特权

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

本版积分规则

723

主题

7134

帖子

2

粉丝