野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12177|回复: 4

输出配置寄存器 的问题

[复制链接]
发表于 2019-3-6 14:22:34 | 显示全部楼层 |阅读模式
本帖最后由 daydayupup 于 2019-3-6 18:01 编辑


0 基础,问题都很白痴。




*(unsigned int *)0x40010C00 |=((1)<<(4*0));   //输出配置寄存器
为什么是要 4*0?   结果不就是0 吗?

谢谢!




回复

使用道具 举报

发表于 2019-3-7 09:02:32 | 显示全部楼层
这算是一个公式,0的位置表示引脚号,改成3,4,5就可以把代码变成控制3,4,5号引脚了,这样用比较方便
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-7 11:54:45 | 显示全部楼层
本帖最后由 daydayupup 于 2019-3-7 12:33 编辑
flyleaf 发表于 2019-3-7 09:02
这算是一个公式,0的位置表示引脚号,改成3,4,5就可以把代码变成控制3,4,5号引脚了,这样用比较方便

非常非常感谢您,但还是不明白。


低寄存器配置.png

要把bit 0 1 2 3 配置为 0001, 按照学习视频, 代码为   *(unsigned int *)0x40010C00 |=((0x0f)<<(4*0));

那么请问,4 代表的就是这四个位吗?  0 就是想把哪几位置为1 吗? 那如果是把 bit4 置 1 呢?

我的问题就是,不知所以然   真的好痛苦


回复 支持 反对

使用道具 举报

发表于 2019-3-7 14:05:29 | 显示全部楼层
左移4表示一个引脚占4位,0x0F是要存储在4*0 ,4*1,4*2等控制引脚0,1,2的寄存器位中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-11 09:38:09 | 显示全部楼层
flyleaf 发表于 2019-3-7 14:05
左移4表示一个引脚占4位,0x0F是要存储在4*0 ,4*1,4*2等控制引脚0,1,2的寄存器位中

用草稿纸认真验证了一遍, 也在霸道上演示试了一下,真的是这样的,大谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 02:57 , Processed in 0.031657 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表