例子说明及框图
本例子基于STM32F103ZET6芯片,实现SPI1与SPI2的主从通信。其中SPI1配置为主机,SPI2配置为从机,均配置为全双工模式。硬件连接图:
其中,我们需要注意的是,SPI的从机不能主动发送数据,只能应答数据。本例子的数据交互过程:
1、主机使用查询方式发送数据给从机。
2、从机使用中断接收方式接收数据,把接收到的数据加上0x05再发送给主机。
2025年08月10日
本例子基于STM32F103ZET6芯片,实现SPI1与SPI2的主从通信。其中SPI1配置为主机,SPI2配置为从机,均配置为全双工模式。硬件连接图:
其中,我们需要注意的是,SPI的从机不能主动发送数据,只能应答数据。本例子的数据交互过程:
1、主机使用查询方式发送数据给从机。
2、从机使用中断接收方式接收数据,把接收到的数据加上0x05再发送给主机。
2025年08月10日
在此之前,我们来回顾一下队列的基本概念:
队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除(出队)。
类似售票排队窗口,先到的人看到能先买到票,然后先走,后来的人只能后买到票
普通队列
在计算机中,每个信息都是存储在存储单元中的,比喻一下吧,上图的一些小正方形格子就是一个个存储单元,你可以理解为常见的数组,存放我们一个个的信息。
2025年08月10日
往期文章推荐:
https://mp.weixin.qq.com/s/KvhJ6FEFXSKQ-mwpJOczbA
2025年08月10日
除了 Keil,我们团队现在更倾向于用一套更灵活的组合拳来开发 STM32。比如底层配置阶段,除了 CubeMX,偶尔也会直接上手 STM32CubeProgrammer 做快速初始化,它的图形化配置虽然和 CubeMX 类似,但在批量烧录和分区管理上更顺手,尤其是需要给不同芯片刷不同固件的时候,批量操作比 Keil 的下载配置高效得多。开发环境这块,除了 CLion,VSCode 加插件也是常用方案 —— 装上 C/C++、CMake Tools、Embedded Tools 这几个扩展,再配置好 arm-none-eabi-gcc 的路径,配合 cortex-debug 插件,轻量又能跨平台,对习惯 VSCode 生态的开发者来说几乎零门槛,而且和 Git 的集成比 Keil 顺畅太多,多人协作时提交代码、解决冲突不用在 IDE 和版本工具间来回切换。调试环节除了 Ozone,有时候也会用 STM32CubeMonitor 系列工具,比如 Monitor-Power 能实时看功耗曲线,Monitor-Serial 直接抓 UART/SPI 数据,配合 J-Link 的 SWD 接口,调试外设交互问题比单纯看寄存器直观。构建方面,除了 CMake+Ninja,对一些小型项目会直接用 Makefile,手写的编译规则虽然初期麻烦,但能精准控制每个文件的编译选项,配合 shell 脚本做自动化打包,比 Keil 那种必须点开 IDE 才能调参数的方式灵活得多。其实这些工具组合的核心逻辑很简单:摆脱单一 IDE 的束缚,让配置、开发、调试、构建每个环节都能选最顺手的工具,比如改外设参数用 CubeMX,写应用层代码切 VSCode,查内存泄漏切 Ozone,跑自动化测试扔到 Linux 服务器用脚本构建,整个流程拆解开反而比 Keil 那种 “一站式但处处受限” 的模式更高效,尤其是项目涉及多团队协作或者需要对接上位机、云平台的时候,这种分散又协同的工具链能避开很多兼容性坑。
2025年08月10日
铁子们,咱既然有 STM32 基础,想琢磨蓝牙、WIFI 这些玩意儿,先把心态掰扯明白 —— 别抱着 “非 STM32 不能活” 的执念。就跟现在满大街吐槽 ST 涨价套路深一样,学这些外设本质上和单片机型号没啥锁死的关系,核心就俩字:寄存器。
先说硬件这块儿。你手里的 STM32F1/F4 现在看确实像个 “理财产品”,但玩蓝牙 WIFI 说白了就是单片机挂外设。你当年能把 STM32 的 GPIO、SPI、UART 鼓捣明白,换个 GD32、灵动微甚至更冷门的国产片子,操作逻辑一模一样。别被 “必须原厂例程” 唬住,蓝牙模块(比如 HC-05、ESP-AT)、WIFI 芯片(ESP8266、AP6212)的 datasheet 才是真大哥,对着寄存器表配时钟、设波特率、搞中断,和你当年玩 STM32 的 SPI 驱动 LCD 有啥区别?无非是协议层多了 AT 指令或者自研透传逻辑罢了。
2025年08月10日
单片机从出现到现在被普遍应用,时间并不长,但是单片机的发展是非常迅猛的。
我们在常见的电子产品中常常会见到它的身影。
2025年08月10日
之前跑马灯的时候已经生成过了一次keil工程,不过只是简单地编译下载,这次来仔细看一下工程中都有什么。
顺便体验一下快捷的串口设置。
与之前类似,这次需要配置一下串口
模式就用异步,毕竟我们懒得提供额外的同步时钟。
波特率115200,字长8位。
ok,闲话不多说,打开keil!
认识keil工程