摘要: 前言 最近调试工作上用到和很多SPI,不同传感器的、不同控制平台之间的。遇到了不少奇奇怪怪的问题,记录一下。主要是stm32上这个平台上的使用,当然对于SPI这个常用的通信协议这里不多介绍了,可以找一下相关的资料熟悉相关概念和使用,全双工下的使用无论是中断还是DMA都比较简单没有啥好说的,这里就讲一 阅读全文
posted @ 2021-06-16 10:24 齐刃 阅读(2523) 评论(1) 推荐(1) 编辑
摘要: ##前言 --mark 整理中 阅读全文
posted @ 2021-06-16 10:22 齐刃 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 前言 mark --整理中 阅读全文
posted @ 2021-06-16 10:21 齐刃 阅读(154) 评论(0) 推荐(0) 编辑
摘要: mark --待补充 阅读全文
posted @ 2021-06-16 10:20 齐刃 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 前言 起因是学习 crazyflie 的代码中出现 **__ sync_fetch_and_add ** 这个操作比较好奇,查阅后发现 __sync_fetch_and_add 有一些列的操作函数用于实现原子操作 **fetch **是先返回然后再进行 add 操作 其他同类型的原子操作函数,gcc 阅读全文
posted @ 2021-06-16 10:14 齐刃 阅读(242) 评论(0) 推荐(0) 编辑
摘要: α-β / d-q 坐标系 α-β 坐标系 第一种 第二种 电角度0°的定义 目前常用的有两种定义如下图所示,因为不同的定义得出的结论是不一样的,之前学习的时候就在这里卡住了很久。第一种定义方式Q轴与A相对齐时为电角度0°,另一种方式是D轴与A相对齐的时候为电角度0° 总结 选取不同的坐标系会得出不 阅读全文
posted @ 2021-05-23 12:06 齐刃 阅读(1261) 评论(0) 推荐(0) 编辑
摘要: ###准备 修改连接脚本 在RW_RAM1中添加一个 section "RAMCODE",具体语法是 *.o(RAMCODE) 添加完成之后有两种方式可以把函数添加到RAM中运行 方式一 使用#pragma #pragma arm section code = "RAMCODE" /******放到 阅读全文
posted @ 2021-05-11 17:36 齐刃 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 前言 在使用一些传感器或者通信协议的时候经常会出现某个字节中的某几个位代表某些数值,提取出来就需要使用位运算,表达式看起来就不是很清晰,这时候使用联合体和位段就可以解决这些问题。 实现 大小端 在stm32中定义一个16位的变量然后为其赋值 可以看出在内存上面0x20000002上保存0x36,0x 阅读全文
posted @ 2021-05-08 10:24 齐刃 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 前言 RTOS的分析是比较困难的,特别是任务多且涉及很多任务通信的时候,程序的稳定性就是一个比较麻烦的问题了,不过好在有很多工具可以用来分析RTOS的运行状况,常见的有SystemView、Tracealyzer,TIRTOS的分析工具ROV(运行时对象查看器)则集成在CCS中。下面以Segger的 阅读全文
posted @ 2021-05-04 09:44 齐刃 阅读(1118) 评论(0) 推荐(1) 编辑