ARM架构double计算比float计算快现象
ARM架构double计算比float计算快现象 在评估rk3588处理器性能发现,现在处理器计算双精度浮点比单精度浮点要快上不少,其测试程序如下 int main(){ auto a = HAL::time().ns(); float f1 = 0.1; for (in
ARM架构double计算比float计算快现象 在评估rk3588处理器性能发现,现在处理器计算双精度浮点比单精度浮点要快上不少,其测试程序如下 int main(){ auto a = HAL::time().ns(); float f1 = 0.1; for (in
ArduPilot源码阅读——Location篇 location class类中有很多关于经纬度计算 小距离内近似获取方向角 获取当前this对象相对于loc2对象的方向角 这里采用了一种近似算法,把经纬度球面坐标系在小范围内(10KM)近似为平面直角坐标系, 采用NED形式,x轴指东表示经度,y
ArduPilot源码阅读——上层运动模式篇(Guided for boat) 设置目标点 函数调用时机:这一目标点结束后调用; 如果目标点队列为[10,10];[20,20];[30,30], 首先调用set_desired_location([10,10], [20,20]) 表示从原点(默认[
ArduPilot源码阅读——底层油门转向篇 低通滤波器 在AC_AttitudeControl_Sub中写到了一个使用低通滤波器,来防止突然变化的高度信息,使控制器缓慢达到目标值 _althold_lean_angle_max = _althold_lean_angle_max + (_dt/(_
STM32串口接收溢出处理问题 读取GNSS接收机串口数据的时候发现, 我只需要接收时间,所以只需要接收NMEA数据的前40个字节即可定位时间, 于是我用 HAL_UART_Receive(&huart2, (uint8_t*)nmea_buffer, 40, 40); 但是接收了几个回合后发现,其
std::string问题总结 返回指针修改问题 std::string test_string = "hello world" test_string.c_str() /* 返回的是Const char*,不可当做指针修改!*/ test_string.data() /* C20之前
车规级导航级IMU ADIS16505 价格2000-2500 STIM300、KVH1750、MG370、SCHA 634、Novatel 100C、CPT、KVH1775、HG4930、GI7660、POS320、 INS 570H、LCI、pp7 E1
Ring buffer (环形数据采集区) 为了解决写SD过慢,从而采集数据不够快的问题 Ring buffer的定义,方法声明(放在头文件中) /* ------------- ring buffer ---------------- */ #define BUFFER_SIZE 32768 //
有关stm32f407 使用 SD卡 + FATS文件新系统 + DMA 有关注意点 由于我有向sd卡写入imu数据(速度很快)的要求,所以要使用DMA。 在Cube中,f4系列的单片机配置FATS中可以使用DMA模板, 在研究这个过程中出了点玄学问题: FATS dma template enab
有关IMU数据采集完成中断信号 DATARDY 信号有干扰(波动),导致 STM32外部中断接收多次触发的问题 之前通过示波器抓取过DATARDY的信号质量,发现当读取IMU数据的时候DATARDY信号会有相当的波动 可能跟我把DATARDY配置为推挽输出,高电平有效有关,这导致了输出电压变化; P