C++算法之《快速找出数组中元素重复次数》2025-02-112025-02-11C++//假如这里我有一个vector数组 vector<int> arr = [1,2,2,2,3,3,4]; unorder_map<int, int> um; for(auto e : arr){ um[e]++; } vector<pair<int, int>> tmp; for(auto2025-02-11|36|0|0
Linux内核模块驱动编写及导入2025-02-102025-02-10阿刁的摸索先前要使用rock5a rk3588s芯片中的pwm通道作为两个电调的输入信号使用。 查阅资料,在rsetup中打开相对应的pwm-gpio后,发现可以通过用户空间直接操控pwm频率,占空比。 其用作电调的控制是足够的,但是想更进一步,把pwm编写为字符设备驱动程序。 esc-pwm驱动程序编写 这2025-02-10|32|0|0
Debian APT系统代理2024-12-252025-04-29阿刁的摸索Debian APT系统代理 Debian不同于Ubuntu,前者需要进行很长的手动操作,才能实现terminal的代理 打开 vim ~/.bashrc 输入 alias proxy=" export http_proxy=http://127.0.0.1:7890; export2024-12-25|65|0|0
C语言内存优化技术——位域(Bit Fields)2024-12-16C++C语言内存优化技术——位域(Bit Fields) 在嵌入式系统和内存受限的项目中,内存优化是一个关键的任务。本文将介绍一种有效的内存优化方法——位域(Bit Fields),并结合代码示例讲解其原理与应用。 什么是位域(Bit Fields)? 位域是一种允许在结构体或类中分配更精确的位数的技术。2024-12-16|49|0|0
macos自带VNC连接ROCK5A2024-12-13阿刁的摸索apple自带VNC连接ROCK5A cmd + space 输入screen 打开屏幕共享 右上角➕2024-12-13|45|0|0
ARM架构double计算比float计算快现象2024-12-06阿刁的摸索ARM架构double计算比float计算快现象 在评估rk3588处理器性能发现,现在处理器计算双精度浮点比单精度浮点要快上不少,其测试程序如下 int main(){ auto a = HAL::time().ns(); float f1 = 0.1; for (in2024-12-06|44|0|0
ArduPilot源码阅读——Location篇2024-12-04阿刁的摸索ArduPilot源码阅读——Location篇 location class类中有很多关于经纬度计算 小距离内近似获取方向角 获取当前this对象相对于loc2对象的方向角 这里采用了一种近似算法,把经纬度球面坐标系在小范围内(10KM)近似为平面直角坐标系, 采用NED形式,x轴指东表示经度,y2024-12-04|50|0|0
ArduPilot源码阅读——上层运动模式篇(Guided for boat)2024-12-042024-12-04阿刁的摸索ArduPilot源码阅读——上层运动模式篇(Guided for boat) 设置目标点 函数调用时机:这一目标点结束后调用; 如果目标点队列为[10,10];[20,20];[30,30], 首先调用set_desired_location([10,10], [20,20]) 表示从原点(默认[2024-12-04|57|0|0
ArduPilot源码阅读——底层油门转向篇2024-11-252024-12-04阿刁的摸索ArduPilot源码阅读——底层油门转向篇 低通滤波器 在AC_AttitudeControl_Sub中写到了一个使用低通滤波器,来防止突然变化的高度信息,使控制器缓慢达到目标值 _althold_lean_angle_max = _althold_lean_angle_max + (_dt/(_2024-11-25|56|0|0
STM32串口接收溢出处理问题2024-10-192024-10-19阿刁的摸索STM32串口接收溢出处理问题 读取GNSS接收机串口数据的时候发现, 我只需要接收时间,所以只需要接收NMEA数据的前40个字节即可定位时间, 于是我用 HAL_UART_Receive(&huart2, (uint8_t*)nmea_buffer, 40, 40); 但是接收了几个回合后发现,其2024-10-19|35|0|0