完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
以下是关于STM32地址操作的心得,同时还有个问题请教大家
--------------------------------------------------------------------------------------------------------------- 记得学51单片机时,如果要对某个特殊功能寄存器操作,在C51中可以用sfr先定义这个寄存器 但是现在STM32中却看不到SFR了,那么它是怎么操作那么多的寄存器的呢? 拿GPIOA举例来说 我顺藤摸瓜找到了它是怎样一步步被定义出来的,见下面的代码 #define PERIPH_BASE ((u32)0x40000000) //定义外设基地址 #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) //定义APB2外设基地址 #define GPIOA_BASE (APB2PERIPH_BASE + 0x1800) //定义GPIOE的基地址 #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE) //可以推测出这句话定义了一个地址在 GPIOA_BASE 的GPIO_TypeDef 结构体 好了下面可以在我们的程序中操作寄存器了,比如让GPIOA输出全零; GPIOA->ODR=0x0000; ------------------------------------------------------------------------------------------------------------------- 问题来了:1、 上面代码中宏定义加括号是什么用法,为什么要加括号, 2、 第一条语句中的u32又是什么用法,没见过这样用的 3、 我在谭浩强书上没找到这种用法,求高人详细分析 再问个有趣的问题,要是STM32可以在运行的时候根据CPU的使用率(用ucos可以统计)调节PLL的值来降低STM32的功耗,但是问题是PLL一旦设定好后貌似不能再直接修改了,有没有其他办法 |
|
相关推荐
10个回答
|
|
就是个类型说明,你不要那个u32也可以.
|
|
|
|
加括号是什么用法呢
|
|
|
|
自己顶 求原子哥解答一下第二个问题
|
|
|
|
论坛有个此类问题的帖子,说的很详细,LZ搜索 一下。
|
|
|
|
我用地址做关键词搜都搜不到我说的问题
螃蟹 你说的是《 Keil编程环境下STM32内存管理研究[转载]》这篇帖子吧 可惜这和我说的完全不是一回事 其实我的问题就是关于C语言宏定义的一种奇怪的用法,你知道这种用法么 |
|
|
|
|
|
|
|
|
|
|
|
你可以看看C51  0,P1,P2等等,都有固定的地址(用数字表示)。
|
|
|
|
帮你找到了。http://www.openedv.com/posts/list/918.htm
|
|
|
|
感谢螃蟹,这篇帖子以前扫了一下,不知道他除了讲volatile,还讲了#define 的这种特殊用法,
其实自己分析代码,已经可以推测出这种用法的含义了,但是就是觉得突然冒出来的新用法,在谭浩强的书上又找不到,一时难以接受。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1561 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1501 浏览 1 评论
933 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
665 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1555 浏览 2 评论
1847浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
609浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
503浏览 3评论
507浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
488浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 13:33 , Processed in 0.722847 second(s), Total 63, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号