你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
lsyswh 发表于 2017-1-7 18:08 配置多通道最好使用DMA, 启动DMA同时就是启动多通道采集。你配置好工程后会自动配置通道的 HAL_ADC_Start_ ...
wayhe 发表于 2017-1-13 08:28 在STM32F系列ADC采用DMA好像可以这样配置,STM32L051好像没法配置多通道,你可以试试,不知道是不是我的 ...
Paderboy 发表于 2016-3-2 11:20 看你是开了DMA 了,你开几个ADC通道 Cube会自动配置通道的。。。无需再设置。。和F0的一样。。。 :lovelin ...
启动DMA同时就是启动多通道采集。你配置好工程后会自动配置通道的
HAL_ADC_Start_DMA(&hadc,ADC_ConvertedValue,2)
这里面ADC_ConvertedValue是一个数组,后面的2代表两通道,是你自己定义的。
HAL_ADC_ConvCpltCallback里面要注意,可以按照楼上给的示例做测试(我在测试时里面如果没有配置好就会死在DMA中断里)。
另外你说的回自动清除你写的代码,要注意在
以下位置写入(以main中的USER CODE BEGIN 3为例),
/* USER CODE BEGIN 3 */
。
。
。
/* USER CODE END 3 */
还有,做开发心态很重要,抱怨HAL库的时候多想想实现原理,你会有更多收获。
在STM32F系列ADC采用DMA好像可以这样配置,STM32L051好像没法配置多通道,你可以试试,不知道是不是我的软件版本没跟上;
你说的在:
/* USER CODE BEGIN 3 */
。
。
。
/* USER CODE END 3 */内写函数,当然是写这里的,你觉得会犯这么低级的错误吗?
我说的删除用户程序可不是这里而是连用户写的xxxx.c文件整个删除,那才真正让人抓狂。
怎么可能删除用户写的程序,你写的程序要单独放到一个文件夹里的,为什么要和cubemx的代码混合呢?
CUBEMX的逻辑就是利用HAL库和中间件隔离你对底层的操作。你使用STMCU的所有资源基本上都在自带的src和inc目录里的文件操作。这些是ST提供的外设配置环境。
你要写的功能肯定都是控制逻辑和算法之类,这些肯定是单独建一个目录,这样才是松耦合。你如何配置都不会删除你额外的文件的。
网上很多公司出的HAL库的使用方法,都是标准库的思想,如果用这种思想去使用HAL库,会累死人的。
兄弟,你用过F0吗?F0是自动配置通道的?那它扫描的方式是在Scan Conversion Mode里设置的那样,Forward或者Backward吗?这意思就是我不用手动配置Rank的前后顺序了吗?
兄弟,你说的这个2代表两通道貌似是不是有点问题啊,我看了一下函数定义,2就是Length的实参,官方的解释原文是The length of data to be transferred from ADC peripheral to memory,貌似不是代表2通道啊