logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

linux内核移植研究学习

以下内容为正点原子课程的学习笔记。

文章图片
#linux#运维#服务器
ROS2 串口无法通信问题

进入工作空间创建包,需要注意的是,加入geometry_msgs,因为twist是这个包里的。节点名:cmd_vel_serial_node.cpp。包名:stm32_serial_bridge。进入包的源码文件夹创建节点。串口通信节点具体代码。

文章图片
#c++#开发语言
ROS2--Tiwst数据类型转换到帧类型发给STM32

占 2 个字节,而串口按字节发送,所以再把这个 16 位整数拆成低字节和高字节,分别放到发送数组中。从 double 类型 转成 int16_t 类型,也就是 16 位有符号整数,不是 8 位整数。原本能表示的 32767,要反过来除以 1000,得到原始速度最大约 32.767。因为串口是一个字节一个字节发,所以要把这个 16 位数拆成两个 8 位字节。这样 STM32 收到后就以为角速度是 0

文章图片
#stm32#嵌入式硬件#单片机
I2C驱动学习

I2C适配器驱动层的软件已经被原厂工程师写好了,并且这部分是包含时序相关的内容的。然后,我们只是编写i2c_driver,在这个部分里面,不再涉及时序相关内容。向上提供接口,向下进行硬件操作这个部分包含时序的内容,并且不需要我们编写。是内核准备好的,我们编写i2c_driver的时候,对这个部分的API进行调用I2C驱动分为I2C_client和I2C_driver两个部分,或者说I2C设备模型

文章图片
#学习
U-boot移植

U-Boot 本质上只是一个通用的启动框架。它已经提供了很多公共代码,比如启动流程、命令行、环境变量、镜像加载、内存初始化框架、设备模型框架等。但是,不同开发板的硬件条件并不一样。比如,CPU 型号可能不同,DDR 类型和时序不同,Flash 介质可能是 NAND、NOR、eMMC 或 SD 卡,串口编号和 GPIO 连接也可能不同。原版 U-Boot 不可能默认知道你这块板子的这些信息。所以,开

文章图片
#嵌入式硬件
到底了