打印
[MM32软件]

ADC底层函数库的疑问

[复制链接]
659|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ZG11211|  楼主 | 2024-12-22 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LibSamples_MM32F0140_V1.3.7
hal_adc.c
void ADC_RegularChannelConfig(ADC_TypeDef* adc, u32 channel, u8 rank, u32 sample_time)    //ADCSAM_TypeDef
{
    u32 tempchan;
    sample_time = sample_time & 0xF;
    tempchan = channel;
    if(tempchan > 8)
        {
        tempchan = tempchan & 0xF;
        tempchan = tempchan - 8;
        adc->SMPR2 &= ~(0xF << (tempchan << 2));
        adc->SMPR2 |= (sample_time << (tempchan << 2));
    }
    else
        {
        adc->SMPR1 &= ~(0xF << (tempchan << 2));
        adc->SMPR1 |= (sample_time << (tempchan << 2));
    }
}
官方的代码如上述,我觉得这个判断有问题,大于8才走SPMR2寄存器,实际序号是0-7,8-15,那么序号8就被装入了SMPR1了,这是不是错误?

使用特权

评论回复
沙发
l1uyn9b| | 2025-1-13 18:39 | 只看该作者
一般来说,官方的demo应该不会出错的

使用特权

评论回复
板凳
cen9ce| | 2025-1-13 19:42 | 只看该作者
你可以试试啊,用这个例程跑起来试试呗

使用特权

评论回复
地板
g0d5xs| | 2025-1-13 19:50 | 只看该作者
不会错吧,是不是这个数是个数而不是序号啊?

使用特权

评论回复
5
b5z1giu| | 2025-1-13 21:04 | 只看该作者
你最好是仿真的方式根据程序来走一遍看看怎么运行的

使用特权

评论回复
6
kaif2n9j| | 2025-1-13 22:18 | 只看该作者
如果最后的结果是对的,应该ADC就是对的吧

使用特权

评论回复
7
p0gon9y| | 2025-1-13 23:49 | 只看该作者
确实我还没注意过这种情况,不过一般情况下代码应该不会出错

使用特权

评论回复
8
suw12q| | 2025-1-14 09:27 | 只看该作者
那MM32的ADC到底好使吗?应该是好使的啊?

使用特权

评论回复
9
tax2r6c| | 2025-1-14 12:00 | 只看该作者
话说如果序号8被撞到SMPR1中会有啥后果啊?

使用特权

评论回复
10
lix1yr| | 2025-1-14 13:14 | 只看该作者
我理解的是,如果运行结果都没错的话,应该不是底层有问题吧

使用特权

评论回复
11
liu96jp| | 2025-1-14 14:28 | 只看该作者
你是ADC采集有问题了吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

1118

帖子

8

粉丝