- 博客(10)
- 收藏
- 关注
原创 #pragma pack(1):在嵌入式中的使用
取消对齐可能导致 CPU 访问未对齐内存,降低性能(尤其在 ARM、RISC-V 等架构上)。如果编译器插入 Padding,可能导致寄存器地址错位,硬件无法正常工作。如果编译器默认插入 Padding,解析时可能会错位,导致数据错误。不同编译器或硬件(x86、ARM)可能有不同的默认对齐规则,使用。等场景中,数据的字节顺序和内存布局必须严格匹配,否则解析会出错。需要存储大量结构体数据(如数组、链表)。(TCP/IP、HTTP/2 等)。(BMP 文件头、ELF 文件头)。恢复默认对齐,避免影响其他代码。
2025-05-26 17:10:32
521
原创 RT_Thread项目使用ADC配置流程
6、将mx_ADC1_Init()函数和HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)函数复制黏贴到board.c文件后面。2、在 RT-Thread 工程中,所有的外设的配置都是在。1、找到自己板子所用引脚对应的通道。
2025-05-14 14:06:26
263
原创 RT_Thread项目使用spi配置流程
5、打开CubeMX进行配置SPI,二线全双工主模式,根据自己板子上的实际引脚配置相应引脚。2、在board.h中打开SPI的注释,使用SPI几需要查看你自己板子上的硬件连接图。16、复制CubeMX自动生成的HAL_SPI_MspInit这段代码。21、回到cubemx文件夹下的main.c文件中复制spi2句柄。19、粘贴到board.c的末尾,记得把static关键字去掉。22、粘贴到board.c文件的前面,并加上extern关键字。17、粘贴到board.c的末尾。4、打开SPI模块使能注释。
2025-05-13 16:17:51
214
原创 RT_Thread项目使用软件iic
和 SPI 总线的自定义传输接口一样,I2C 总线的自定义传输接口传输的数据也是以一个消息为单位。参数 msgs[] 指向待传输的消息数组,用户可以自定义每条消息的内容,实现 I2C 总线所支持的 2 种不同的数据传输模式。如果主设备需要发送重复开始条件,则需要发送 2 个消息。在使用 I2C 总线设备前需要根据 I2C 总线设备名称获取设备句柄,进而才可以操作 I2C 总线设备,查找设备函数如下所示,注:RT-Thread I2C 设备接口使用的从机地址均不包含读写位,读写位控制需修改标志 flags。
2025-05-09 16:39:54
397
原创 RT-Thread项目使用外部晶振
把void clk_init(char *clk_source, int source_freq, int target_freq)函数里调用的system_clock_config(target_freq)改成systemclock_config();粘贴这个函数更换rtthread项目中的system_clock_config(target_freq)函数;下面这一步可以省略,自己追源码后就知道为什么可以省略。使用cubemax配置时钟树,生成代码后找到这个函数。
2025-05-08 17:40:06
253
原创 out、ref
作者:张齐天链接:https://www.zhihu.com/question/383493049/answer/1199264098来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2024-03-14 16:06:37
1452
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人