OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4338|回复: 6

关于往具体位置地址赋值问题

[复制链接]

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
发表于 2016-1-13 14:20:15 | 显示全部楼层 |阅读模式
硬件是原子哥的战舰开发板,STM32F103ZET6。实验时LED实验,其中LED0是PB5端口,我是想既然我知道了GPIOB->CRL的地址是0x40010C00,那么根据下图1
可不可以直接给地址为0x40010C02赋值0x34,即PB4为浮空输入,PB5为推挽输出
程序里是这么写
u8 *a;
a=(u8 *)0x40010c02;
*a=0x34;
然而实际仿真时却是如图2:


CRL2.png

图2 仿真

图2 仿真
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2016-1-13 14:25:06 | 显示全部楼层
我本意是只改变地址0x40010C02的值,即B4、B5的CRL,但是实际上却改变B0-B7,即(0x40010C00-0x40010C03)整个GPIOB->CRL寄存器,这是为何?
回复 支持 反对

使用道具 举报

354

主题

1475

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8097
金钱
8097
注册时间
2015-10-15
在线时间
2919 小时
发表于 2016-1-13 21:32:46 | 显示全部楼层
首先,楼主会去这样用,可见楼主还是很用心思去学好STM32的。
这里有几个问题提出来:
1. CRL这些都是32位寄存器。请按32位方式操作。
2.正确的写发:
           u32 * bcrl;
        bcrl=(u32 *)0x40010c00;
         *bcrl=0x55555555;

    无标题.png
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2016-1-14 09:45:32 | 显示全部楼层
openedvadmin 发表于 2016-1-13 21:32
首先,楼主会去这样用,可见楼主还是很用心思去学好STM32的。
这里有几个问题提出来:
1. CRL这些都是32 ...

首先谢谢你的解答!
解释的很有道理,但是我还是有点疑问,有点死脑筋,毕竟每个地址代表的应该是一个字节,是不是说CRL 32位寄存器我只能去整体访问,无法单独访问里面的单个字节。
是寄存器为多少位则按多少位方式操作(就像你说的第一点)?还是说stm32不支持位操作(位带操作不算)?
回复 支持 反对

使用道具 举报

18

主题

422

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1139
金钱
1139
注册时间
2014-5-24
在线时间
116 小时
发表于 2016-1-14 10:42:17 | 显示全部楼层
外设很多的寄存器限定为4字节对齐访问。位操作似乎是51时的指令,Cortex-M3是没有。
I See Fire.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.·.  只给方向,不妨碍思考
回复 支持 反对

使用道具 举报

354

主题

1475

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8097
金钱
8097
注册时间
2015-10-15
在线时间
2919 小时
发表于 2016-1-14 11:06:10 | 显示全部楼层
善良的二哥 发表于 2016-1-14 01:45
首先谢谢你的解答!
解释的很有道理,但是我还是有点疑问,有点死脑筋,毕竟每个地址代表的应该是一个字 ...

是的。32位方式访问。
当然,你也可以通过位带操作,一个位映射为一个地址,参考我们位带操作视频即可
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

195

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
313
金钱
313
注册时间
2014-10-27
在线时间
34 小时
 楼主| 发表于 2016-1-15 10:59:43 | 显示全部楼层
谢谢两位的耐心解答!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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