历史上的今天
今天是:2025年05月14日(星期三)
2018年05月14日 | STM32F0多路ADC采样中的BUG和解决方案
2018-05-14 来源:eefocus
uint32_t ADC_Detect(uint32_t AD_Channel){
hadc.Instance->CHSELR = 0;
ADC_ChannelConfTypeDef sConfig;
sConfig.Channel = AD_Channel;
sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;
sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
HAL_ADC_ConfigChannel(&hadc, &sConfig);
uint32_t ADC_result;
/*ADC START*/
if(HAL_ADC_Start(&hadc)!=HAL_OK)
{
while(1)
{
}
}
/*Wait for ADC completed*/
if (HAL_ADC_PollForConversion(&hadc, 10) != HAL_OK)
{
while(1)
{
}
}
else
{
/*Get the converted value of regular channel*/
ADC_result = HAL_ADC_GetValue(&hadc);
HAL_ADC_Stop(&hadc);
//ADC_result =((ADC_result*3300)>>8);
return ADC_result;
}
}
使用CUBE生产的ADC无法配置多路采样,多路采样采集值不对,研究后发现是底层函数没有将CHANNEL清零导致的
只需要在函数中增加 hadc.Instance->CHSELR = 0; 手动清0 寄存器即可。
上一篇:STM32F0 ADC学习
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 非常翔实、全面的四篇文档,没有比这更详细的。好好阅读,一切尽在掌握! 几乎在所有的总线接口中,最重要的参数就是时序。对于初学者,不应仅满足于器件的连接和编程。需要掌握总线接口时序 ...… 查看全部问答> |
|
1 引言 USB接口以其数据传输快、连接简单、易于扩展、支持热插拔等特点已成为外设与PC通信的主要方式之一。随着嵌入式系统的发展,嵌入式微处理器需增加通用的USB接口,以便实现与PC等USB主机系统的通信。针对这样的需求,这里采用PHILIPS公司的USB ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 用稳压集成功放制作的功率放大器,对电子爱好者来说,作为开拓思路的一种尝试不无积极意义。该电路为纯甲类工作,又用低噪声管作电压放大,所以THD,NF等指标都不错,输出功率可达到30W 电路 ...… 查看全部问答> |
|
只需到TI的网站填写调查问卷,就有机会获得免费的MSP430开发板,赶快行动吧 能以 8 位产品价格实现 16 位出色性能与超低功耗的 Value Line 系列 MSP430™ 处理器,可帮助您轻松启动设计,真正做到以更少投 ...… 查看全部问答> |
|
请问从事硬件设计(非电子设计,就是主要不是搞vlsi),应该有什么样的基础,请详细说明 我是一个初学者,我的师兄在大唐电信工作 他本科是学计算机科学与技术的 他研究生学习的是计算机控制技术 他做过汽车电子的项目 他做过嵌入式系统 他很忙 联系不上他 所以问大家 作为硬件工程师 需要那些 ...… 查看全部问答> |
|
我第一次接触GPRS模块 不知道怎么选择模块 应该考虑哪些问题。 现在我所知道的是我主要需要用这个模块进行短信服务,需要内嵌TCP/IP协议的模块,希望高手能给我指教。 同时我想知道有什么资料能让我对GPRS模块有个更快的了解呢? 谢谢!!!!! ...… 查看全部问答> |
|
我想在SmartARM2200开发板上实现XML格式的数据传输.当然,就要求能解析XML数据,找了很多资料,实在是不知道怎么下手. 从网上下了ADS下来,本想在开发板: 在uCOS-II系统下 实现 TCP通讯实验 这个例子里面直接加入XML数据的解析函数就可以了.但是找了很 ...… 查看全部问答> |




