c
文章平均质量分 53
LitchiCheng
这个作者很懒,什么都没留下…
展开
-
linux驱动中ioctl使用
linux驱动中ioctl使用在驱动头文件中定义幻数/* 定义幻数 */#define OLED_IOC_MAGIC 'k'/* 定义命令 */#define OLED_IOC_OPEN _IO(OLED_IOC_MAGIC, 1)#define OLED_IOC_CLOSE _IO(OLED_IOC_MAGIC, 2)#define OLED_IOC_SET_POINT _IOR(OLED_IOC_MAGIC, 3, int)#define OLED_IOC_SET_STRING _原创 2021-05-03 19:26:25 · 187 阅读 · 0 评论 -
linux下oled驱动
linux下oled驱动oled12864接口:4针i2c供电:3.3-5v像素:128*64体积:27272ic:SSD1306地址:0x3c(手册中0x78,实际0x3c)代码先上代码:github仓库链接gitee仓库链接设备树在i2c的控制器下追加该设备&i2c2 { clock_frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2原创 2021-05-03 19:16:41 · 709 阅读 · 0 评论 -
linux下mpu6050驱动
linux下mpu6050驱动代码先上代码:github仓库链接gitee仓库链接设备树在i2c的控制器下追加该设备&i2c2 { clock_frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; status = "okay"; mpu6050:mpu6050@68 { compatible = "dar,mpu6050"; re原创 2021-05-03 19:08:49 · 1294 阅读 · 10 评论 -
linux下mpu6050驱动 i2c
linux下mpu6050驱动环境介绍大致流程接线修改设备树增加驱动文件dev structopenreleasereadopsmatchproberemovei2c drivermisc完整代码示例环境介绍imx6ullmpu6050模块(i2c接口)ubuntu 18.04大致流程接线,对照原理图,找到i2c的资源,这里我们用的i2c2的接口修改设备树,在对应i2c2控制器下增加节点增加驱动文件,对读写的实现接线略修改设备树在i2c控制器下追加节点&i2c2原创 2021-04-05 08:44:45 · 570 阅读 · 0 评论 -
IAR 解决 Error[Li005]: no definition for....
IAR 解决 Error[Li005]: no definition for…明明声明,也定义了,但是偏偏编译就报这个错误。如果你配置的是C++混合C,那.c文件的头文件都要加上这样一段#ifndef _ENCODE_H_#define _ENCODE_H_#include <stdio.h>#include "board.h"#if defined(__cplusplus) //一定要加extern "C" { //一定要加#endif //一定要加int test(i原创 2020-11-02 17:10:49 · 5306 阅读 · 0 评论 -
int32_t+float出现的问题
代码:int main(int argc, char const *argv[]){ int32_t num = 274221312; float add1 = -10.111; double add2 = -10.111; int32_t sum1 = num+add1; int32_t sum2 = num+add2; int32_t sum3 = num+(int32_t)(add1); printf("%d,%d,%d",sum1,sum2原创 2020-09-23 11:53:44 · 463 阅读 · 0 评论 -
C++计算多继承对象的大小问题
C++计算多继承对象的大小问题code#include <iostream>using namespace std;class A{private: int a; int a1;public: A(/* args */){} ~A(){}};class B:public A{private: int b;public: B(/* args */){} ~B(){}};class C:public A{原创 2020-07-13 11:09:02 · 224 阅读 · 0 评论 -
陀螺仪姿态解算思想
算法总结低通滤波罗格里德角表示四元数方向余弦矩阵向量外积PI控制器一阶龙格库塔法归一化欧拉角低通滤波高频噪声的信号过滤得到准确的数据,加速度计高频噪声较大。罗格里德用该表示方法,最后转化成sin cos角的形式,得到四元数的表示方法四元数单纯使用方向余弦矩阵转换存在函数Y与自变量相同的问题简化数学运算,防止处理器变慢方向余弦矩阵坐标系转换:可由二维的转换左乘表示,x轴固定,y轴固定,z轴固定任何三维坐标的变换都可以旋转三次得到。向量外积外积的表达式 |原创 2020-05-10 17:53:28 · 4680 阅读 · 1 评论 -
对于debug调试时实时在线数据显示工具的设想
对于debug调试时实时在线数据显示工具的设想背景往往在嵌入式debug调试过程中,会遇到需要在线显示某些数据的过程,加快分析代码出现问题的地方。但是由于debug的数据变量名在变,数据类型也在变。设想使用protobuf的消息类型,定义如下message Message_DebugInfo{ string debug_module_name = 0; repeate Me...原创 2020-04-20 08:41:37 · 147 阅读 · 0 评论 -
int32_t 为-1强转uin16_t是什么?
int32_t 为-1强转uin16_t是什么?int32_t x = -1;uin16_t y = x;是65536#include <iostream>using namespace std;int main(int argc, char const *argv[]){ int32_t x = -1; uint16_t y = x; co...原创 2020-04-20 08:24:30 · 747 阅读 · 0 评论 -
protobuf同一个message使用相同enum的问题
同一个message中定义两个enum类型,两个enum中分别有两个相同的变量名,生成时出错。需要定义不同的变量名,否则编译器会找不到报错。使用 option allow_alias = true;message Message_Example{ enum XX{ option allow_alias = true; NONE = 0; } enum TT{ NONE...原创 2020-04-14 20:40:59 · 2753 阅读 · 0 评论 -
实现模板类型的回调callback类
基类class CCallBackBase{ public: virtual void callBack(void){}};模板类template<typename T>class CTemplateCallBack: public CCallBackBase{ public: CTemplateCallBack(T* ptr_T, vo...原创 2020-02-13 15:14:22 · 565 阅读 · 0 评论