会员
周边
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
wb-code
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
下一页
2026年1月7日
STM32 GPIO输出速率的意义?
摘要: 一、输出速率物理意义: 高速率->边沿陡峭 低速率->边沿平缓 2、功耗考虑 速率越高,功耗也会越高 // 电池供电设备的优化 void power_save_gpio_config(void) { // 非关键GPIO用低速 set_gpio_speed(LED_PIN, LOW_SPEED);
阅读全文
posted @ 2026-01-07 20:12 心事不在脸上
阅读(24)
评论(0)
推荐(0)
2025年12月30日
UART发送数据效率与可靠性问题
摘要: void ESP32_Writecommand(const char *command) { while(*command) { while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET); USART_SendData(USART2,*comm
阅读全文
posted @ 2025-12-30 16:49 心事不在脸上
阅读(42)
评论(0)
推荐(0)
2025年12月29日
嵌入式组件及其一些思考
摘要: 嵌入式开发中常用的软件组件/设计模式有哪些? 嵌入式开发中常用的软件组件和设计模式非常丰富,以下是系统性的分类总结: 一、核心数据结构组件 环形缓冲区 (Ring Buffer/Circular Buffer) 串口通信数据缓存 日志系统缓存 音频数据处理 ** 队列 (Queue)** 消息队列:
阅读全文
posted @ 2025-12-29 23:00 心事不在脸上
阅读(47)
评论(0)
推荐(0)
2025年12月19日
函数指针变量使用static关键字几个重要原因
摘要: 一、static的三种用法回顾 // 1. static用于局部变量:保持值不变 void func(void) { static int count = 0; // 只初始化一次,值在调用间保持 count++; } // 2. static用于全局变量:限制作用域到当前文件 static int
阅读全文
posted @ 2025-12-19 13:08 心事不在脸上
阅读(17)
评论(0)
推荐(0)
typedef void(*func)(int) VS void(*func)(int) 的区别
摘要: 一、本质区别 1、void(*func)(int) ——声明变量 func是一个变量 占用内存空间(通常4或8字节) 可以赋值、可以修改 作用域为当前代码块 2、 typedef void(*func)(int) - 类型定义 func是一个类型名 不占用内存空间(编译时概念) 用于声明多个同类型变
阅读全文
posted @ 2025-12-19 12:56 心事不在脸上
阅读(36)
评论(0)
推荐(0)
回调函数
摘要: 回调函数 作用:解耦合。模块间通过清晰的API接口进行联系,减少模块间的耦合。 例如:利用UART中断控制LED亮灭,当串口接收到特定数据时对LED进行控制,正常情况下应该是在中断服务函数中编写对LED的控制程序,这样会使得两个模块之间耦合联系过深,不利于移植和通用性的实现。 使用回调函数就可以实现
阅读全文
posted @ 2025-12-19 12:28 心事不在脸上
阅读(29)
评论(0)
推荐(0)
2025年12月16日
指针传递和值传递的建议
摘要: 例子:对于嵌入式字体,结构体通常包含: typedef struct { uint8_t height; // 字体高度 uint8_t width; // 可能没有,或固定比例 const uint8_t *model; // 字体数据指针(最重要!) // 可能还有其他属性:起始字符、结束字符等
阅读全文
posted @ 2025-12-16 14:33 心事不在脸上
阅读(23)
评论(0)
推荐(0)
2025年12月12日
C与C++中数组退化为指针的情况
摘要: 数组退化的常见场景: 1、函数的参数传递 void func(int arr[]) { // 实际上是指针 int* arr // sizeof(arr) 是指针大小,不是数组大小 } int main() { int arr[5] = {1, 2, 3, 4, 5}; func(arr); //
阅读全文
posted @ 2025-12-12 17:29 心事不在脸上
阅读(83)
评论(0)
推荐(0)
2025年12月2日
【编程技巧】do{..........}while(0)在嵌入式中的作用
摘要: 主要作用: 1、避免宏展开时的语法错误 // 有问题的宏定义 #define SWAP(a, b) \ temp = a; \ a = b; \ b = temp; // 使用时 if (x > y) SWAP(x, y); // 展开后语法错误!多了一个; 2、强制使用分号 使用 do while
阅读全文
posted @ 2025-12-02 01:44 心事不在脸上
阅读(42)
评论(0)
推荐(0)
IIC
摘要: I2C概述: 1、两根通信线SCL、SDA 2、同步,半双工 3、支持总线挂载多设备(一主多从、多主多从) 4、带数据应答 5、支持不同的通信速度: ——标准速度:100khz ——快速速度:400khz I2C工作模式: I2C默认状态是工作在从模式,其实可以接受其他设备发出的通信请求。想把I2C
阅读全文
posted @ 2025-12-02 00:43 心事不在脸上
阅读(37)
评论(0)
推荐(0)
上一页
1
2
3
下一页
公告