摘要: STM32 开发中,官方提供的适用于 GCC 工具链的启动文件由 ARM 汇编实现,本文分析其中内容,并使用 C 语言重新实现。 以 ST 官方提供的项目示例为例,其中包含一个启动文件 startup_stm32f10x_md.s 和链接脚本 stm32_flash.ld。启动文件中定义了 Cort 阅读全文
posted @ 2025-10-12 15:57 ~夏至、微风~ 阅读(749) 评论(10) 推荐(8)
摘要: MSYS 环境下 GCC 启用本地化支持 msys 环境下的 gcc 打包时没有启用本地化支持,因此编译输出信息只有英文: // 一份包含若干错误的 C 代码 #include <stdio.h> int main(){ int a = 1; in b = 2; doubl c = 1.1; pri 阅读全文
posted @ 2026-02-27 20:49 ~夏至、微风~ 阅读(16) 评论(0) 推荐(0)
摘要: nayuki-qrcodegen QRCodegen 是一个开源的二维码生成库,提供了多个语言的版本,如 C、C++、Java、JavaScript、Python、 Rust 等。 本文介绍其 C/C++ 版本的使用方法。 项目地址 QRCodegen C语言版本 C语言版本不涉及动态内存分配,适合 阅读全文
posted @ 2026-02-21 18:33 ~夏至、微风~ 阅读(26) 评论(0) 推荐(0)
摘要: #ifndef __SPI_H #define __SPI_H #ifdef __cplusplus extern "C" { #endif #include <stm32f10x_spi.h> #include <stdint.h> void SPI1_SendRecvData(const uin 阅读全文
posted @ 2026-01-18 00:51 ~夏至、微风~ 阅读(28) 评论(0) 推荐(0)
摘要: 完全实现HAL库的对应函数功能: C语言版本 i2c.h 文件: #ifndef __I2C_H #define __I2C_H #ifdef __cplusplus extern "C" { #endif #include <stm32f10x.h> #include <stdint.h> #de 阅读全文
posted @ 2026-01-18 00:21 ~夏至、微风~ 阅读(40) 评论(0) 推荐(0)
摘要: 传统的 STM32 开发,使用的是 C 语言。C++ 中的一些高级特性,如引用、面向对象等,可以极大地提高代码的可读性和易维护性。 前置条件 开发板:STM32F103C8T6 开发环境:vscode+EIDE 插件 编译器:arm-none-eabi-gcc v15.2.0 开发环境的适用方法,可 阅读全文
posted @ 2026-01-16 23:36 ~夏至、微风~ 阅读(106) 评论(0) 推荐(0)
摘要: 安装 clang-format clang-format 是 LLVM 项目的一部分,因此首先需要安装 LLVM。官网下载速度较慢,可以去清华源下载: 最新版下载链接:LLVM-binary 根据操作系统下载对应的版本,如果是 Windows 点击 LLVM-xxxx-win64.exe 即可下载, 阅读全文
posted @ 2025-02-08 12:00 ~夏至、微风~ 阅读(521) 评论(0) 推荐(0)
摘要: 安装 首先去vscode官网下载适合自己的安装包,一般来说选择 User Installer x64 即可,具体安装过程请参考其他教程,此处不再赘述: Vscode官网 安装完成后打开,在左侧边栏打开插件市场,搜索并安装如下四个插件: C/C++ (C语言代码提示的核心插件) Chinese (中文 阅读全文
posted @ 2025-02-05 00:28 ~夏至、微风~ 阅读(3306) 评论(0) 推荐(0)