社区首页
论坛版块
问答专区
文档中心
盘古22K
盘古50K
盘古50K实验例程
盘古100K-MINI
盘古676系列100Pro+
RK3568+PG2L50H100H
泰坦70H
泰坦390H
PGX-NANO
PGX-NANO实验例程
逻辑派z1
盘古1/2K
PGX-MINI_4K
PGX-LITE_7K
香芋派开源开发板PG2L25
盘古EU22K
盘古EU22K实验例程
盘古484系列
盘古50Pro
盘古100Pro
其他资料
资料获取
视频学习教程
商城
远程硬件
联系我们
发布
创建话题
创建版块
发布帖子
登录
注册
找回密码
快速登录
社区首页
论坛版块
问答专区
文档中心
盘古22K
盘古50K
盘古50K实验例程
盘古100K-MINI
盘古676系列100Pro+
RK3568+PG2L50H100H
泰坦70H
泰坦390H
PGX-NANO
PGX-NANO实验例程
逻辑派z1
盘古1/2K
PGX-MINI_4K
PGX-LITE_7K
香芋派开源开发板PG2L25
盘古EU22K
盘古EU22K实验例程
盘古484系列
盘古50Pro
盘古100Pro
其他资料
资料获取
视频学习教程
商城
远程硬件
联系我们
登录
注册
找回密码
快速登录
19
1
更多资料
搜索内容
Sumireko
1枚徽章
关注
私信
帖子
3
文章
0
评论
0
粉丝
1
收藏
0
版块
0
发布
3
排序
最新发布
最近更新
最新回复
最多查看
最高评分
最多回复
最多收藏
Sumireko
昨天更新
9次阅读
关注
私信
嵌入式 C 里的编译期约束:用 _Static_assert 防止配置不一致
写嵌入式驱动时经常碰到这种情况:两个宏定义在不同文件里,必须保持一致,但没有任何机制强制它们匹配。
比如硬件驱动层定义了单次 DMA 的最大传输字节数,上层又计算了实际要传输的包大小——两个数字由不同参数决定,改一个忘了另一个,运行时才发现传输截...
ARM基础入门
评分
1
分享
Sumireko
昨天更新
5次阅读
关注
私信
用函数指针表替代大段 switch-case:嵌入式命令分发的常用技巧
嵌入式里经常要根据一个索引或命令码执行不同操作,最直觉的写法是 switch-case:
void handle_cmd(uint8_t cmd) { switch (cmd) { case CMD_START: do_start(); break; case CMD_STOP: do_stop(); break; case CMD_RESET: do_reset(); break; case CMD_STATU...
ARM基础入门
评分
回复
分享
Sumireko
昨天更新
5次阅读
关注
私信
用宏生成代码:C 预处理器的 #、## 与 X-Macro
大多数人用宏只会 #define 替换,但预处理器还有两个操作符几乎没人注意到,用好了能省掉大量重复代码。
#:字符串化
在宏参数前加 #,把参数原样变成字符串字面量:
#define STRINGIFY(x) #x
ARM基础入门
评分
回复
分享
创建话题
创建版块
发布帖子
在手机上浏览此页面
登录
没有账号?立即注册
手机号或邮箱
验证码
发送验证码
记住登录
账号密码登录
登录
用户名/手机号/邮箱
登录密码
记住登录
找回密码
|
免密登录
登录
社交账号登录
注册
已有账号,立即登录
设置用户名
手机号或邮箱
验证码
发送验证码
设置密码
注册
扫码登录
使用
其它方式登录
或
注册
扫码登录