夜雨聆风学习资料网

ARTICLE · 1125993

自制的串口调试器——软件功能调试篇

自制的串口调试器——软件功能调试篇
    继续完成我们这个串口调试器。利用之前和AI沟通的设计方案,直接打开Cursor,告诉它我们电脑的ESP-IDF环境配置。剩下的就是交给它,先帮我们把架构根据之前的设计文档做好。

前两篇在这里:

这篇是执行篇,看看这套方法真正用在一个串口调试器上,效果到底怎么样。

一、先锁IO:硬件资源冻结

第二篇里提过一个原则:硬件资源必须先冻结再编码。引脚复用冲突是嵌入式开发最常见的低级错误,与其让AI“猜引脚”,不如先把这张表定死。

3.1 屏域 SPI(SPI2_HOST)

信号GPIO宏名
SCK / MOSI / MISO12 / 13 / 11PIN_PANEL_*
LCD CS / DC / RES / BLK48 / 14 / 39 / 40PIN_LCD_*(BLK 高开)
触摸 CS / PEN47 / 41PIN_TOUCH_*
SD CS10PIN_SD_CS

时钟:面板约 20 MHz;触摸约 2 MHz;SD 约 10 MHz。

3.2 UART

用途UARTTXRX
烧录/日志UART04344
通道 AUART11718
通道 BUART21516

监视:只绑 RX,TX 用 UART_PIN_NO_CHANGE。
发送:uart_set_pin 再绑 TX;硬件上需拨通 SW2 对应位。

3.3 电池 / 其它

功能GPIO宏
BQ25601 SDA/SCL/INT1 / 2 / 42PIN_BAT_*
状态 LED21PIN_STATUS_LED
EXT-I2C8 / 9占位
EXT-1W38占位
EXT-SPI4/5/6/7,SPI3_HOST占位
USB-DATA19/20原生 USB

二、功能分块:要做什么

IO定死之后,接下来就是把功能拆清楚。这个串口调试器主要分这些块:

名称说明备注
串口监视双路 RX → 屏显 + 可选写 SD工具主要功能可以监视一路双向的串口通信
串口控制内置预设经 A/B 口 TX,看回复调试器可以临时作为主机发送串口数据,方便现场调试
查看文件SD 日志目录浏览 + 分块读方便查看保存的监视记录
快捷发送读 SD quick/*.csv 点选/循环发送支持预设报文快捷发送
USB 读卡器TinyUSB MSC 挂 SD用于电脑导出监视文件
USB 上位机TinyUSB CDC 自定义帧可以通过上位机配置自定义报文等功能
系统设置串口/系统/电池设置波特率、屏幕亮度等系统参数
自动熄屏30s 无触摸关背光延长电池供电使用时长
屏背景预设 + 自定义支持换好看的背景图
远程控制STA + WS 推 A/B通过小程序的局域网串口监视功能可以远程查看监视
BLE 配置小程序配参通过小程序连接蓝牙可以配置参数
电池BQ25601电源管理

三、开发流程:把ESP-IDF配置丢给Cursor,架构让它搭

第一篇聊硬件,第二篇聊方法,这篇该聊执行了。

具体做法很简单:打开Cursor,把ESP-IDF的环境配置路径告诉它——在Windows下就是激活idf.py的那条命令——然后把第二篇里定义的四层结构(BSP/device/function/library)和上面那张IO表一起丢给它。剩下的,让它按设计文档先把架构搭出来。

编译烧录也不用切窗口。ESP-IDF现在有MCP Server可以用,把mcpServers配置写进Cursor的mcp.json,AI就能直接调用idf.py build、flash、monitor,整个过程在对话里完成。或者用esp-idf-helper这类skill,它把configure → build → flash → monitor的完整命令行流程封装好了,Cursor直接就能用。

架构搭完之后,剩下就是往里填功能。串口监视、发送、SD写入、USB CDC、WS推送,每个功能落到对应的层里,AI知道该改哪个文件。这就是第二篇里说的“结构对抗屎山”在实际项目里的样子。

四、产品的定位与灵感

这个产品实际是之前做的无线串口监视器的升级。

8块钱手把手教你做无线串口监视器:蓝牙透传+局域网Websocket+MQTT(二)

之前那篇《8块钱手把手教你做无线串口监视器:蓝牙透传+局域网Websocket+MQTT(二)》,用的是ESP32-C3核心板,简单实现了远程监视串口的功能。当时主要是调试小程序用的,功能比较单一,只是通过一个串口去监视。这次不仅仅可以远程监视串口通信,设备本身也可以保存监视数据,使用场景上有了不小提升。

还有就是之前用过的一个小工具,简单说就是USB转TTL+IIC+SPI,使用上位机来和进行通信。但是这么一个东西竟然要50多!!!当时需要用电脑进行IIC通信,手头没有更好的办法,所以还买了2个。现在这个东西的主要功能也被我集成到串口控制器上了。虽然部分功能还没有实现……

五、设备部分

实际调试还是比较麻烦的,现在实现了基本功能,来展示一下吧。

首先是屏幕控制部分。由于屏幕尺寸还是有点太小了,所以主界面没有做成列表形式,列表太容易误触了。这里采用了上下翻页的方式。

关注
重播 分享 赞

主界面分成了:串口监视、串口发送、读文件、快捷发送、上位机控制、读卡器模式、小程序控制模式、设置。这几部分。具体的功能后续再一一讲解,这里先简单展示一下。

目前除了串口监视,还完成了串口发送功能。这是绿色字,就是调试器发送出来的数据。

六、上位机部分

仿照那个50多块的USB转TTL+IIC+SPI小工具,把它最主要的通过上位机进行通信的框架准备好。目前只支持了串口监视的查看功能,后续再增加IIC等通信功能。

七、下一步

目前串口监视和发送已经能用了,上位机的串口查看框架也搭好了。下一步是补上I2C和SPI的通信,把那个50块小工具的功能全部吃进来。另外,小程序的局域网监视和BLE配参也在计划里。等这些都跑通了,再回来汇报。

相关学习资料