- 主题:初学者请教STM32一个GPIO的问题
刚学嵌入式,请教一个STM32F407的GPIO问题。以GPIOA为例,其地址范围为0x4002 0000 - 0x4002 03FF,地址空间大小为0x400,但是每个GPIO只有10个寄存器,地址只偏移到0x24,那么剩余的0x400-0x24地址空间分配给谁了?还是空着的?谢谢大家
--
修改:wrcrpp0 FROM 27.39.221.*
FROM 27.39.221.*
你的学习方向错了,你应该找19年以后的STM32基于cubeIDE和HAL库的开发教程看,基于寄存器的开发已经过时了,已经没有人会从寄存器入门学STM32了,ST官方至于5年前就推荐优先使用HAL库开发,而不是寄存器编程,所以没必要把时间浪费在这些牛角尖问题上。
现在搞清楚寄存器已经没有意义了,新的MCU设计已经不是每个GPIO分配一组地址了,而是全部GPIO分配一组地址,通过IO MUX实现IO多路复用。
【 在 wrcrpp0 的大作中提到: 】
: 刚学嵌入式,请教一个STM32F407的GPIO问题。以GPIOA为例,其地址范围为0x4002 0000 - 0x4002 03FF,地址空间大小为0x400,但是每个GPIO只有10个寄存器,地址只偏移到0x24,那么剩余的0x400-0x24地址空间分配给谁了?还是空着的?谢谢大家
--
FROM 14.223.163.*
多谢教诲!
【 在 Oriphia 的大作中提到: 】
: 你的学习方向错了,你应该找19年以后的STM32基于cubeIDE和HAL库的开发教程看,基于寄存器的开发已经过时了,已经没有人会从寄存器入门学STM32了,ST官方至于5年前就推荐优先使用HAL库开发,而不是寄存器编程,所以没必要把时间浪费在这些牛角尖问题上。
: 现在搞清楚寄存器已经没有意义了,新的MCU设计已经不是每个GPIO分配一组地址了,而是全部GPIO分配一组地址,通过IO MUX实现IO多路复用。
:
--
FROM 27.39.221.*
喜欢追根问底是好事
HAL之类入门可以, 想学深入了当然应该看点底层的东西, 怎么能说是错了.
【 在 wrcrpp0 的大作中提到: 】
多谢教诲!
【 在 Oriphia 的大作中提到: 】
: 你的学习方向错了,你应该找19年以后的STM32基于cubeIDE和HAL库的开发教程看,基于寄存器的开发已经过时了,已经没有人会从寄存器入门学STM32了,ST官方至于5年前就推荐优先使用HAL库开发,而不是寄存器编程,所以没必要把时间浪费在这些牛角尖问题上。
: 现在搞清楚寄存器已经没有意义了,新的MCU设计已经不是每个GPIO分配一组地址了,而是全部GPIO分配一组地址,通过IO MUX实现IO多路复用。
:
--
FROM 118.199.204.*
因为STM32太过老旧,现有的大部分教程学习曲线过于陡峭,十几年前,是因为MCU这块没得选,无论是C51还是STM32的开发环境都一样,大家只能死磕。现在不一样了,通用开发环境有Arduino,MCU可选的更多,资料充足的有ESP32和平头哥的TG系列,开发环境比起STM32友善太多了。
要用STM32做出一个像样的玩具,起码要学1个月,ESP32+Arduino只要3天,死磕STM32的GPIO的学习正反馈太少了,用微信小程序里的“蓝牙串口助手”连上ESP32的开发板点灯,只要学3天。
以前的STM32学习成本太高,现在没必要花这么多的时间和精力去凹细节。
【 在 tom6bj 的大作中提到: 】
: 喜欢追根问底是好事
: HAL之类入门可以, 想学深入了当然应该看点底层的东西, 怎么能说是错了.
: 多谢教诲!
--
FROM 14.223.161.*
我不了解stm 瞎猜一下: 这个地址范围是保留给GPIO 的 在硬件层面上 这个地址的信号是被传给GPIO 这一块的,发给其它地址的信号给转给内存
然后呢 具体发给哪个GPIO 口,是可以编程控制的
【 在 wrcrpp0 的大作中提到: 】
: 刚学嵌入式,请教一个STM32F407的GPIO问题。以GPIOA为例,其地址范围为0x4002 0000 - 0x4002 03FF,地址空间大小为0x400,但是每个GPIO只有10个寄存器,地址只偏移到0x24,那么剩余的0x400-0x24地址空间分配给谁了?还是空着的?谢谢大家
--
FROM 13.56.31.*
//esp...就是 内存太小了...
有硬件基础的 搞搞只连一两个器件的项目 直接硬连 也不麻烦啊
【 在 Oriphia 的大作中提到: 】
: 你的学习方向错了,你应该找19年以后的STM32基于cubeIDE和HAL库的开发教程看,基于寄存器的开发已经过时了,已经没有人会从寄存器入门学STM32了,ST官方至于5年前就推荐优先使用HAL库开发,而不是寄存器编程,所以没必要把时间浪费在这些牛角尖问题上。
: 现在搞清楚寄存器已经没有意义了,新的MCU设计已经不是每个GPIO分配一组地址了,而是全部GPIO分配一组地址,通过IO MUX实现IO多路复用。
:
--
FROM 13.56.31.*
剩余的地址就是空着,原因是arm的地址分配最小粒度就是1KB。某些设备还必须以4KB粒度分配地址。具体原因是ARM的架构上有相应的规定,AHB总线访问粒度为1KB,AXI总线访问粒度为4KB。
嵌入式要学好,这些底层知识还是需要的。加油吧!
【 在 wrcrpp0 的大作中提到: 】
: 刚学嵌入式,请教一个STM32F407的GPIO问题。以GPIOA为例,其地址范围为0x4002 0000 - 0x4002 03FF,地址空间大小为0x400,但是每个GPIO只有10个寄存器,地址只偏移到0x24,那么剩余的0x400-0x24地址空间分配给谁了?还是空着的?谢谢大家
--
FROM 49.5.196.*
stm32有啥学习曲线,那么简单的东西,寄存器比什么库都简洁。GPIO那几个寄存器十几
分钟就看完了。
寄存器是软件和硬件的接口,这个接口硬件设计好了就定死了,修改不易,因此软件的
库要严谨得多。但凡用FPGA设计过硬件接口的都知道原文问题答案。
【 在 Oriphia 的大作中提到: 】
: 因为STM32太过老旧,现有的大部分教程学习曲线过于陡峭,十几年前,是因为MCU这块没得选,无论是C51还是STM32的开发环境都一样,大家只能死磕。现在不一样了,通用开发环境有Arduino,MCU可选的更多,资料充足的有ESP32和平头哥的TG系列,开发环境比起STM32友善太多了。
: 要用STM32做出一个像样的玩具,起码要学1个月,ESP32+Arduino只要3天,死磕STM32的GPIO的学习正反馈太少了,用微信小程序里的“蓝牙串口助手”连上ESP32的开发板点灯,只要学3天。
: 以前的STM32学习成本太高,现在没必要花这么多的时间和精力去凹细节。
: ...................
--
FROM 222.90.82.*
这个正解
【 在 haveidea 的大作中提到: 】
: 剩余的地址就是空着,原因是arm的地址分配最小粒度就是1KB。某些设备还必须以4KB粒度分配地址。具体原因是ARM的架构上有相应的规定,AHB总线访问粒度为1KB,AXI总线访问粒度为4KB。
:
: 嵌入式要学好,这些底层知识还是需要的。加油吧!
: --
发自「今日水木 on ALP-AL00」
--
FROM 123.119.239.*