STM32F407学习
文章平均质量分 72
从零开始学STM32F407
徐工不丢焊盘
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32F407学习记录(四)环形缓冲区
这时候,发现tail已经来到了buffer的最后一个位置,如果再往里面写一个数据,tail应该回到开头,也就是现在head所在的地方,但这时候会发现head==tail和一开始缓冲区为空的时候一致。就是往ring_buffer数组中tail所指向位置写入一个数据,然后tail移动至下一个需要写入的位置。注意:取模操作比较费时,如果对速度有要求,可以将缓存区的大小设置为2的幂次方,例如32、64、256。就是从head所指示的位置读取数据,然后将head移动至下一个可以读的位置。至此形成了一个环形的缓冲区。原创 2026-07-12 17:30:12 · 165 阅读 · 0 评论 -
STM32F407学习记录(三)内存管理
STM32F407具有192KB的SRAM:借用正点原子探索者开发指南第五章5.3.3小节的表5.3.3.2和表5.3.3.3所示:能够发现STM32F407的内存由3个部分组成:1.CCM的RAM:这是一个特殊的RAM,只能由内核访问,外设不能访问,比如DMA2.SRAM13.SRAM2内存的分配方式:1.静态分配:全局变量、静态变量2.动态分配:通过运行malloc/free申请释放:创建一个巨大的数组作为一个内存池,然后需要多大的内存,从这个内存池中取。原创 2026-07-11 18:54:27 · 228 阅读 · 0 评论 -
STM32F407学习记录(二)C语言基础
编译器一看 while(flag == 0),心想:“这个 flag 在循环里又没被修改,何必每次都去内存(RAM)里读?”,于是它把 flag 的值从内存取出,放在CPU的寄存器R0里,然后判断 R0 == 0。因为R0永远是0,循环永远不退出,哪怕中断把内存里的 flag 改成了1,CPU读的依然是寄存器R0里的旧值(0)。:“执行到这里,必须把前面所有的内存写操作(Store)全部冲刷到实际物理地址上,确认完成,再执行后面的写操作!(写DR的结果不影响写CR),它为了效率,可能。原创 2026-07-10 20:44:42 · 204 阅读 · 0 评论 -
STM32F407学习记录(一)创建一个寄存器工程
个人吐槽(不喜勿喷):我已经毕业1年了,在小私企做嵌入式开发,这一年来,我做得感觉好杂啊。要画PCB、要写固件、还要写对应的上位机,有点杂而不精,虽然确实对于我刚毕业那会,进步了太多,但这一年来我都没有好好去沉淀我的能力。这一年来,确实也参与了几个项目,比如核电子学的模拟多道、基于树莓派的上位机系统。玩过stm32、pico rp2350、esp32、树莓派,但都不深入,都是基于sdk开发的,甚至都没有用到freeRtos,纯裸机状态机进行开发。原创 2026-07-08 22:49:06 · 578 阅读 · 0 评论
分享