CLion 中开发 RaspberryPi Pico

由于 STM32 价格居高不下,决定把主力芯片换成今年新推出的 RaspberryPi Pico

在官方的快速上手教程中,使用 VSCode 进行开发,然而 raspberrypi/pico-project-generator 生成的 VSCode 配置文件中并不包含 task.json 文件,无法快捷地进行编译和下载操作。而 CLion 对 CMake 提供了特别好的支持,也内带了 OpenOCD 的支持,并不需要编写任何配置文件。

本文就将介绍在 Windows 下如何使用 CLion 和 raspberrypi/picoprobe 对 Pico 进行编译、烧录和调试。

前提条件:参照官方的上手指南,安装了对应的 SDK 和工具链,能够通过命令行正常地编译 Pico 的程序。

STM32F1 的硬件 Bug

最近在设计 RoboMaster 的能量机关时,遇到了很多玄学问题,查阅 STM32F1 的勘误表(errata)后,才发现这些都是芯片在设计阶段发生的 Bug。在这里记录一下触发 Bug 的条件和解决办法。

STM32H7 SPI 踩坑记录

在使用 Art-Pi 的过程中,发现 SPI 正常初始化后调用发送函数卡死在:

1
2
3
4
5
/* Wait for Tx (and CRC) data to be sent */
if (SPI_WaitOnFlagUntilTimeout(hspi, SPI_FLAG_EOT, RESET, tickstart, Timeout) != HAL_OK)
{
SET_BIT(hspi->ErrorCode, HAL_SPI_ERROR_FLAG);
}

【项目笔记】STM32 BootLoader(一) 文件系统

首先放上 项目主页

简单的介绍一下这个 BootLoader:利用 STM32 提供的 USB FS 接口,并设置为 大容量存储设备(MSC, Mass Storage device Class),并在内存中虚拟出一个 FAT16 的文件系统,以此达到让烧录和读取 Flash 像用 U 盘拷贝文件一样便捷。

系统结构如下图所示,这篇文章先介绍一下最主要的 文件系统 部分:

image-20210216134129762