memleak

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

记录STM32雷达通信模块调试的若干问题(基于HAL库)(一)硬件选型和编程环境配置

由于遇人不淑,项目经验坑爹(永远不要指望学校和导师),本电子类科班生硬是被整成了四不像工程师,不得不自学来找到对口的工作。本文记录STM32开发的历程,有一样的初学者可以参考借鉴。
一. 硬件设施
1.STM32F103C8T6最小系统 系统板采用stm32f103c8t6最小系统板,某宝某猫上一杯奶茶的钱即可买到

最小系统包含了电源电路(3.3V稳压),外部时钟晶振,复位电路,SWD调试接口,USB接口(串行下载),启动(BOOT)模式选择, 启动模式的选择是通过跳帽控制引脚电平实现的,串行模式要把BOOT0置1,用仿真器的不用改动。

  1. STLink-V2仿真器

    这个是ST公司发行的配套STM8和STM32系列控制器的仿真器,可以调试和下载程序,把V3,GND,SWDIO,SWCLK与系统板上 的引脚连接即可下载和调试程序,最好买进口的,略贵但兼容性好。
  2. 其他外设
    带有UART串口的外设,本次使用EBYTE的E32-433T20S模块进行无线传输,注意该模块需要买两个同型号的,否则无法通信,略贵,为了学习还是忽略这点成本。。
  • 该模块支持透明/定点传输
  • 带唤醒帧的透明/定点传输
  • 省电模式,休眠模式(配置模式)
  • 带有UART通信接口,可外接天线
  • 5V/3.3V供电,AUX信号输出,AT命令配置

典型接线如下,M0,M1两个引脚用于选择工作模式:

另一个无线模块通过TTL转USB接到PC端,这个模块使用前记得安装CH341驱动:

安装驱动后接上USB口电脑就会扫描到串行设备,可以用串口调试工具向模块发送数据测试功能是否正常:

使用AT命令可以看到设备返回了型号,说明模块能正常响应命令,再打开一个COM口测试两个模块的定点传输功能,使用16 进制发送数据,可以观察到两方都能接收到对方发送的AA BB CC,这说明无线通信功能正常。

  1. 雷达模块
    雷达模块选用海凌科LD2413,激励为连续调频信号,通过调频信号可以实现距离、速度、角度的测量,篇幅有限,感兴趣的可自行百科。
    image
    官方技术手册配图,1~5脚分别为3V3,GND,OT1(Tx),Rx,OT2(不用)。经过实测,该模块一但通电就会连续采集数据并通过Tx发送,官方提供而了上位机demo,可以在上位机里面测试一下测距的效果。
    image
    因为波束宽度只有12°,所以尽量用平板物件测试,这样容易收到反射信号,收不到信号的话读数一直是0。还有一个问题就是该模块是不支持用户开发的,官方编写的固件只有测距功能,所以想要深入学习雷达技术的只能拿它当玩具了。

二. 开发软件
首先安装STM32CubeMX,这个是STM32官方提供的用于创建STM32项目的软件,在软件里可以选择开发使用的芯片型号,并设置各项硬件参数,这些设置的参数可以通过CubeMX一键打包到项目文件里,非常方便。
image

CubeMX生成的项目可以在配套的STM32cubeIDE下编译,也可以在MDK中编译,还可以使用Makefile、CMake等工具链编译。

开发软件选择VSCode,相比于MDK有着舒服的编程界面,相比于其他IDE轻便许多,缺点是对于计算机知识不够的入门 程序员来说配置过程非常痛苦。。。对于学生来说,MDK应该是更好的选择,之所以我选择VSCode是因为MDK界面实在太丑,关键是写代码提示太少,有时候还不响应,32的HAL库很多宏和变量名都巨长,在记忆不深的情况下非常影响编程效率,而且VSCode还能写其它语言的代码,一举多得。 VSCode本身是不具备嵌入式开发功能的,它只是个编辑器,编译依赖于用户设置的外部编译器,为了在VSCode中实现 STM32的开发工作,需要先安装一些必要的插件:

(必选项)

  1. EIDE(Embedded IDE)
    国人开发的插件,操作简单界面简洁,必须五星好评,支持导入MDK工程,cubeIDE工程,当然也可以用Makefile编译(目前 不会),安装后可以在界面上看到左边栏多了一个芯片的图标,打开就是EIDE,可以在EIDE的工程栏配置项目文件,设置编 译器,设置烧写及debug工具,在代码区的右上角也能看到编译,下载的按钮。

  2. C/C++
    无需多言,嵌入式没有C等于四肢不健全。

  3. Cortex-Debug
    调试Cortex-M内核的芯片必备的插件,提供了寄存器、内存单元的监控功能,也提供了Jlink,STlink等仿真器的调试功 能,安装了这个插件后会提示缺少几个依赖项,把它们都装好即可。

  4. code Runner
    image
    代码想跑起来得依靠这个插件

(可选项)
5. Serial Monitor
可装可不装,因为它就是一个串口调试器,为了方便在一个窗口下调试就安装。
6. Tabnine AI
AI辅助工具,能自动联想补全代码,可以提高编程效率。

其他的插件根据使用者的习惯可自行添加。

三、环境配置

VSCode的环境配置对于用惯了IDE的人来说非常不友好,在VS中只要代码一写,F5,F7直接就跑起来了,可惜的是VSCode中这样连一米都滚不出去,首先你得有高级语言的代码支持,然后编辑器想要让代码跑起来要有编译环境,还得用脚本语言告诉编辑器,编译器在哪,调用gdb还是gcc,头文件从哪里引入,生成什么文件;使用IDE只要安装了某一种高级语言支持,后面这些都不是你考虑得事,相当于使用VSCode编程就是自己动手,丰衣足食,每天要想着吃什么,买什么菜,优点是高度的自由性,而使用IDE就像雇保姆,保姆有自己的一套法则,你想改变可不容易,而且还占用你家资源(庞大的体积)。为了自由和空间,我们还是选择了VSCode,在安装第二章的插件后,还有一些环境需要配置。

  1. 下载GCC工具链
    前往Arm官网下载GCC工具链交叉编译工具链这个压缩包解压后,需要添加到环境变量,配置在系统->系统信息->高级系统设置->环境变量->系统变量->Path中输入压缩包bin文件的路径。
    image

注意与自己处理器的指令集对应,或者可以直接在EIDE中选择安装实用工具->GNU Arm Embedded ToolChain,相比于手动下载不会出现环境配置问题,傻瓜式操作即可。
image

  1. 下载OpenOCD
    这个压缩包内包含了debug所需的配置文件,OpenOCD下载压缩包解压后,在VSCode的配置中搜索EIDE扩展项,找到OpenOCD路径设置:
    image
    选择解压的路径即可。

至此,项目前期准备工作基本完成,下一次将分享项目创建和功能实现的若干内容。

未完待续……

posted on   无线电不掉线  阅读(48)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示