用CLion配合PlatformIO开发树莓派Pico(RP2040)
环境
Windows 11
CLion 2024.3
Python 3.12.3
步骤安装PlatformIO
下载get-platformio.py
执行如下命令
12345# change directory to the folder where is located downloaded "get-platformio.py"cd C:/path-to-dir/where/get-platformio.py/is-located# run itpython.exe get-platformio.py
编辑名为 Path 的系统环境变量并追加 C:\Users\UserName\.platformio\penv\Scripts\ 列表开头的路径(请将UserName替换为帐户名)。
安装PlatformIO插件
Go to Settings | Plugins and switch to Marketplace.
Search for PlatformIO for CLion and click Install.
After the i ...
在STM32里使用rosserial
我使用的是Ubuntu 20.04 ROS Noetic搭配STM32F407开发板,不同STM32芯片之间使用起来差异不大
准备工作
Ubuntu安装软件包
1sudo apt-get install ros-noetic-rosserial ros-noetic-rosserial-arduino
(已经配置好的库)MDLZCOOL/rosserial_stm32
开始配置
新建STM32工程,配置RCC等步骤省略。
打开串口,配置中断和DMA,波特率推荐115200。具体配置见下图
生成代码,将rosserial_stm32_lib复制到Core/Inc,并添加进工程里。
在Core/Src添加一个mainpp.cpp,添加以下代码
12345678910111213141516171819202122232425262728#include <ros.h>#include <std_msgs/String.h>#include "mainpp.h"#include "main.h" ...
百度网盘不限速
最近不太稳定了 20241123
准备工作
浏览器:Firefox / Chromium
脚本管理器:Tampermonkey Beta(注意:只能用Beta版本)
Motrix下载器
操作步骤STEP 1 安装插件
打开Tampermonkey Beta的「管理面板」
进入「实用工具」选项卡
复制粘贴安装地址到「从URL安装」进行安装
安装地址:http://1.94.138.197/tampermonkey/min.baidu.user.js
STEP 2 使用
脚本会在网盘根目录自动创建一个文件夹并设置为永久分享,把需要下载的资源转移到这个文件夹里操作。
注意Motrix必须提前在后台打开,否则无法正常拉起。
注意这个方法目前来看应该是最稳定的,速度可以基本跑满,作者规则更新很频繁。相当于免费,不过对于特大文件(比如>30G的文件,好像还没办法下载)
解析下载时根据每个文件的大小扣减解析点数,不足1G的文件消耗1点,1G到2G的文件需要消耗2点,2G至3G的文件消耗3点,以此类推。
获取解析点数的方式目前有「签到」和「视频点赞」两种,点赞列表中的 ...
在CLion上搭建LVGL模拟器
注:本文默认已经安装好了CLion,目标LVGL的版本为8.3,当然新版本也是可以的,都差不多。
需要准备的文件
lv_port_pc_eclipse
使用下列命令克隆仓库到本地(本文以8.3版本为例)
1git clone -b release/v8.3 --recursive https://github.com/lvgl/lv_port_pc_eclipse.git
mingw-builds-binaries
注意下载13.2.0-rt_v11-rev1或之前的版本,新版本CLion暂时不支持
SDL
配置环境
解压下载的mingw64,得到如下文件
解压下载的SDL2,得到如下文件
将SDL2/x86_64_w64-mingw32/include/SDL2复制到mingw64/x86_64_w64-mingw32/include文件夹中
将SDL2/x86_64_w64-mingw32/lib所有的文件复制到mingw64/x86_64_w64-mingw32/lib中
CLion配置工具链
在设置 - 构建、执行、部署 - 工具链新建如 ...
IDM脚本和谐破解注册
步骤一、在官网下载安装IDM
Internet Download Manager
二、在PowerShell里粘贴以下脚本
方法1(Recommended)
1irm https://massgrave.dev/ias | iex
方法2(Traditional)
1234567891011121314151617181920212223242526272829# Check the instructions here on how to use it https://massgrave.dev/idm-activation-script $ErrorActionPreference = "Stop"# Enable TLSv1.2 for compatibility with older clients[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ...
Git使用小技巧Tricks
经历了一次错误的commit,想要撤回1234567891011121314151617181920212223242526git log # 查看上次commit的完整hash字串git reset <arg1> <hash字串> # 撤回commit,<arg1>有参数--soft、--hard、--mixed可选。# 注意注意:一般可以忽略<arg1>。# 区别为# --soft 文件还保存在git里,可以再reset回来# 修改前 --> 修改后# (F) (F)# A-B-C A-B-C# ↑ ↑# master master## --hard 文件直接被删去,慎用!!!# 修改前 --> 修改后# (F) (F)# A-B-C A-B# ↑ ↑# master master## --mixed 文件未被删去,就在本地workspace里,处于未被add的状态 ...
嵌入式驱动接口在C语言里的实现
为什么要实现接口接口,可以是硬件与硬件之间连接的桥梁,可以是软件与软件之间沟通的窗户,也可以是硬件与软件之间通信的枢纽。其中硬件与硬件之间的桥梁,比如I2C、UART、CANFD、等等,软件与软件之间沟通的窗户,比如操作系统提供的各种API、等等。我实现的这套“接口”,连接了硬件与软件,它可以实现软硬件的完全解耦合,引入了平台无关性,提供了尽可能简化的逻辑,这有点类似于开汽车,一个人一旦学会了开汽车,那开什么牌子的汽车都基本是一个道理,实现了一套驱动,一套接口,对于不同系统、硬件平台的支持,这无疑会大大提高代码的易用性、复用性,大大减少重复的造轮子。
我所实现的接口
首先,需要一个结构体来存放系统接口,不妨叫system_interface_t,它用来存放系统的函数实现,是我们将驱动对接到不同平台的关键
123456789typedef struct { generic_err_t (*send)(uint8_t *data, size_t len); generic_err_t (*receive)(uint8_t *data, size_t len); ...
Jetbrains系IDE使用小技巧
主题
One Dark
插件
Chinese (Simplified) Language Pack / 中文语言包
CodeGlance Pro / 侧栏代码缩略
用CLion优雅地调试和开发STM32(CubeMX)
Why CLion?Keil操作简单,容易上手,而且可以很方便地进行调试,不过其古老的界面,不符合人类直觉的操作,不符合现代的编程习惯,必然会被逐渐淘汰。
Jetbrains系IDE具有强大的代码补全、界面风格、各种插件、流畅性等众多优点,毫无疑问能够极大提高开发效率,其中CLion就是专门面向C/C++开发的IDE。
工具链Toolchains
代码编辑器:CLion
编译器:MinGW、arm-none-eabi-gcc
调试器:OpenOCD
HAL代码生成器:STM32CubeMX
Debugger
cmsis-dap
stlink
jlink
etc.
工具安装
STM32CubeMX
OpenOCD 或者用xpack-openocd
MinGW(这是MinGW的在线安装器)
CLion
arm-none-eabi-gcc
几点注意:
建议OpenOCD、MinGW、arm-none-eabi-gcc解压 / 安装到一个特定的目录(eg. /program-tools/)
MinGW可能安装过程中会由于网络原因 ...
KiCad导出Gerber图形文件
KiCad导出Gerber图形文件