完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
6个回答
|
|
我的理解是:比如GPIOA->ODR,有16个位(位带区),然后这16个位对应着16个别名地址.以GPIOA->ODR的第10位为例.
在读操作到时候,先取位带地址的值,即获得GPIOA->ODR的值,然后右移10位,那么LSB的值就是GPIOA->ODR的值了,然后返回这个LSB.那么就实现了读GPIOA->ODR的第十位. 在写的时候,则需要把这个LSB左移10位,然后执行 清空第十位,写入第十位的操作(也就是读-改-写),这样就实现了GPIOA->ODR的第十位的一个写操作. |
|
|
|
哦,大概理解一点。
|
|
|
|
准确地说,是让“写入位带别名区的那个字值”的LSB左移至“在位带区中对应位”的位置,然后,对这个位置的位(位带区的)做“读-改-写”操作。
所以会造成读者迷惑的原因,除了翻译的缘故外,也和作者写书的出发点有关。 作者这么描述,是试图让你了解运作机理。 而从编程者的角度,根本就不需要了解这个,你只需要明白: 有位带区,位带区的每个位,和位带别名区的一个字对应,对位带别名区的一个地址写入一个字,这个字的其他位值是没有任何效果的,只有LSB写入位带区的对应位;反过来,对位带别名区的一个地址读,读到的值,除了LSB是位带区相应的位值,这个“字值”的其他位都是0; 另外,顺便提一句,我的看法,位带别名区只是简化了对位的操作,但是,速度上并不是提高太多。网上有人想当然地说位带别名区的操作速度比普通的操作快10倍,那纯粹是胡说。 |
|
|
|
|
|
|
|
|
|
|
|
3楼的解释很详细,我明白了,谢谢两位的解答
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
740浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
577浏览 3评论
600浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
562浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 12:00 , Processed in 1.145024 second(s), Total 88, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号