![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
嵌入式
文章平均质量分 86
缓下脚步
Life was like a box of chocolates, you never know what you’re gonna get.
展开
-
C/C++中container_of相关详解
该宏定义可以在编译时就直接计算出偏移量,避免了运行时的计算开销,因此比通过变量名访问成员的方式更为高效,通常用在需要直接访问结构体成员的底层代码中,例如在操作系统内核、嵌入式系统以及一些高性能计算应用中。然后,调用offsetof()即可得到member在type类型中的偏移量,最后返回一个指向type类型的指针。如上例,pname指向stu的name成员,通过container_of()宏获得了指向整个struct student结构体的指针pstu,然后就可以访问id和name成员了。原创 2024-03-13 09:59:11 · 510 阅读 · 1 评论 -
使用串口FIFO和Timer实现数据的高效收发
/指向接收缓存//帧首标志,为0xFF或者0xEE//找到帧首,一般是3~5个FF或EE//帧首的个数,一般3~5个//已经接收的字节数//找到完整帧后,置1//本帧数据总长度,这个区域是可选的3.2 初始化数据结构,一般放在串口初始化中/*** @brief 初始化寻找帧的数据结构* @param p_fine_frame:指向打包帧数据结构体变量* @param dst_buf:指向帧缓冲区* @param sfd:帧首标志,一般为0xFF或者0xEE*/原创 2024-03-05 14:51:04 · 1125 阅读 · 0 评论