33
984
1
论坛元老
不知道是不是BUG,也不知道后续版本是否有更正
关于STM32开发指南-寄存器版本以及源码中的ADC实验貌似不能成功。
看了STM32中文参考手册才发现,要想启动ADC,要在ADON位是“1”的情况下“写入1”,即ADCx->CR2|=1<<0;
而源码中仅在Adc_Init()时执行过一遍ADCx->CR2|=1<<0;而在ADC采集时没有ADCx->CR2|=1<<0;动作。
而ADC_CR2复位值是0x00000000 也就没有“在ADON位为1时向ADON位写入1”这个动作,所以程序会卡在while(!(ADC1->SR&1<<1));一句上,致使ADC失败。
源码我并没有编译执行,仅仅是将源码中的Get_Adc(u8 ch)和Adc_Init(void)拷贝出来放到我自己的程序里,发现ADC并没有成功,而回头查看了下源码发现源码的ADC也应该不会成功。
不知道这里是不是一个BUG或者是一个最新版本已经更正了的bug。
头回在论坛发帖,先挣个脸熟吧
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
查看 »
正点原子公众号
|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )
GMT+8, 2025-6-26 00:19
Powered by OpenEdv-开源电子网
© 2001-2030 OpenEdv-开源电子网