- 博客(9)
- 收藏
- 关注
原创 ST7789 RK3588驱动
lInux源码中已经提供了st7879的初始化源码,并且会创建一个framebuffer设备,因此,这里直接使用linux源码内容。可以看出每次都要拷贝用户的数据,在高帧率的情况下明显负担太重,因此用户在帧率高时,一般不用这个函数,而是直接映射显存。我们其实将设备放在了spi总线下,当然也可以放在platform总线下,那样就要自己写spi的调用了,得不偿失。这里主要做了屏幕的初始化,以及背光节点的注册,然后将fb_info注册到fb设备。fb_sys_read是标准的读取函数,其将显存拷贝到用户空间。
2026-05-05 16:54:38
402
原创 Linux SPI子系统跟踪打印
主要跟踪复杂容易出现误解的函数,忽略spi_init()函数,这个函数主要注册bus以及class,基本上不会出错。
2026-03-26 20:59:54
422
原创 SPI子系统
│▼▼▼在时间上,spi.c最先注册,其会注册spi总线以及class spi_master然后,是作为platform设备的spi注册,其会与设备树匹配,调用probe函数,启动bitbang控制器,然后实现传输函数,并向spi core注册master,为核心层提供各类回调函数。核心层利用队列实现了异步调用,为用户驱动提供了各类函数,用户驱动能通过这些函数来传输信息,而避免自己实现主机spi硬件部分的代码编写。
2026-03-14 23:04:22
453
原创 基于Matlab的差速轮式小车非线性MPC轨迹重规划
模型预测控制是一种广泛应用于工业控制领域的高级控制策略,其根据系统的模型及当前状态预测未来系统的输出,并通过求解受限条件下的最优控制问题,获得一组系统的最优控制输入序列,随后,只选取最优控制序列中的第一组结果,将其应用于系统中。本文设计了一种基于差速轮式小车的MPC轨迹规划器,通过设置合理的评价函数,在满足约束条件下,生成符合AGV运动的轨迹并尽量减少轨迹与参考路径的偏差。其中,第一项为AGV预测位置与参考轨迹点的欧式距离,第二项为角速度,第三项为障碍物惩罚函数,为较小的正数,防止分母出现零的情况。
2025-03-01 12:26:28
1430
4
原创 Linux IIC 驱动解析
i2c_device_match函数为设备和驱动匹配函数,此函数内容为if (!return 1;return 1;= NULL;return 0;其中of_driver_math_device函数会比较IIC设备节点和驱动中的compatible属性是否相等,成功匹配后会运行probe函数,其他函数为其他匹配方法。
2024-09-19 21:35:19
1494
原创 VSCode使用code runner配置Anaconda环境
在编译器右下角选择两个不同版本的conda环境,如果环境没出来,需要等待一下,或者检查Anaconda是否加入了系统环境变量。选择不同编译器版本,输入ctrl+alt+n快捷键,或点击右上角小三角运行,发现编译器输出版本不同,成功。进入executor Map edit in setting.json。新建py文件,输入以下代码。
2024-09-19 19:35:07
1705
2
原创 STM32维特智能JY60HAL库读取
感觉JY60是维特智能家出口的最拉的陀螺仪了,别的都支持115200波特率,甚至是IIC,就它是9600。其实也可以按照官方给的协议自己在串口中断里面接受陀螺仪数据,反正就是一个起始位加三个标志位,最后再来一个校验位,不过我很懒,直接移官方的啦。
2024-04-10 18:22:09
5069
14
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅