STM32F4xx + 片外ADC 多路采集方案小结

小磕小绊,软件方面约半月完工,总结如下:


  1. F4xx与F1xx 的库函数编程差异主要集中在GPIO设置、DMA通道结构和时钟树上。
  2. 关于DSP库函数的使用,将官方库源码文件导入工程,使用时直接代入输入矩阵即可。把DPS函数源码简单复制粘贴至原工程文件使用可能会带来意想不到的麻烦。
  3. DPS运算涉及到浮点运算,在工程选项的C/C++选项卡里开启FPU。
  4. 典型问题:开启多个中断时,与上位机的USRT通讯中断优先级须设为最高。
  5. 采集模式若为连续采集,当USRT中断优先级高于ADC数据总线中断优先级时(片外ADC选用了FSMC与STM32连接,若是片内ADC,则为DMA),USRT会打断数据传输,导致通道短暂随机错位。解决方法是在每次USRT中断后,DeInit相应的数据总线。
  6. 浮点运算结束后,待发数据要进行强制整型转换。


F4xx可搜索到的资源仍少,遇到疑问可遵循以下原则:CMSIS的帮助文档 > 网络例程,先动脑再用搜索引擎。

你可能感兴趣的:(嵌入式)