你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
wayhe 发表于 2017-1-13 08:28 在STM32F系列ADC采用DMA好像可以这样配置,STM32L051好像没法配置多通道,你可以试试,不知道是不是我的 ...
Paderboy 发表于 2016-3-2 11:20 看你是开了DMA 了,你开几个ADC通道 Cube会自动配置通道的。。。无需再设置。。和F0的一样。。。 :lovelin ...
wayhe 发表于 2016-3-2 17:39 在哪里打开几个ADC通道?我只能看到配置几个通道的ADC输入引脚。其他不知道在哪里配置多通道,我试了实际 ...
wolfgang2015 发表于 2016-3-2 17:50 拷贝出来单独管理
wayhe 发表于 2016-3-4 14:59 看来只有这个笨办法了,这样做也有很大风险,替换来替换去,最后要是最后编译的都是残缺的文件没有被发现 ...
{
/* Get the converted value of regular channel */
uwADCxConvertedValue = HAL_ADC_GetValue(AdcHandle);
HAL_ADC_Stop_IT(&hadc);
if(CH_dp==0)
{
CH_dp=1;
ADC1->CHSELR = ADC_CHANNEL_2;
}
else
{
CH_dp=0;
ADC1->CHSELR = ADC_CHANNEL_7;
}
HAL_ADC_Start_IT(&hadc);
HAL_UART_Transmit_IT(&huart1, (uint8_t*)uwADCxConvertedValue, 4);
}
怎么可能删除用户写的程序,你写的程序要单独放到一个文件夹里的,为什么要和cubemx的代码混合呢?
CUBEMX的逻辑就是利用HAL库和中间件隔离你对底层的操作。你使用STMCU的所有资源基本上都在自带的src和inc目录里的文件操作。这些是ST提供的外设配置环境。
你要写的功能肯定都是控制逻辑和算法之类,这些肯定是单独建一个目录,这样才是松耦合。你如何配置都不会删除你额外的文件的。
网上很多公司出的HAL库的使用方法,都是标准库的思想,如果用这种思想去使用HAL库,会累死人的。
启动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库的时候多想想实现原理,你会有更多收获。
看似你这个应该是F0或F1的ADC配置
在哪里打开几个ADC通道?我只能看到配置几个通道的ADC输入引脚。其他不知道在哪里配置多通道,我试了实际生成的ADC初始化里只配置了最后的通道,而且没有加校准程序和用户代码区,想自己加程序每次重新生成又会清掉自己写的代码,Cube MX越用越郁闷。
拷贝出来单独管理
看来只有这个笨办法了,这样做也有很大风险,替换来替换去,最后要是最后编译的都是残缺的文件没有被发现就麻烦了。
最郁闷的是STM32L0还没标准库用。
代码管理问题,要不用SVN或者啥的代码管理工具。这样就能找回代码了。
另外说一句,CubeMX创建的工程的确很不错,仅仅作为创建代码,要作为项目代码还得另外加管理。