1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
停止连续模式下的AD转换描述:To stop continuous conversion,reset the CONT bit to stop conversion or reset the ADON bit to power off ADC
可是我CONT置0怎么还是会进入AD中断。 main() { CLOCK_INIT(); GPIO_INIT(); ADC_INIT(); EOCIE = 1;//开启EOC中断 _asm("rim"); ADON = 1;//启动AD转换 while (1) { if(ADC_DATE[0] > 0x48) { LED = ON; } else { LED = OFF; } } } void ADC_INIT(void) { u8 i=112; ADC_CSR = 0X04;//PD3(AIN4)为输入通道 ADC_CR1 = 0X22;//f(ADC)=4M,连续转换 ADC_CR2 = 0X30;//数据左对齐 ADC_CR3 = 0X00;//有数据缓存 ADC_TDRL |= SETBIT4;//取消AIN4的施密特 ADON = 1;//ADC唤醒 while(i--); } @far @interrupt void ADC_GETInterrupt (void) { u8 i; NUM++; EOC = 0; ADC_CR1 = CLRBIT1; for(i=0;i<=9;i++) { ADC_DATE[i] = *( ADC_DB0RH+i+i); } return; } |
|
相关推荐
1个回答
|
|
在STM8S的AD转换中,要停止连续模式下的AD转换,需要确保以下几个步骤都正确执行:
1. 将CONT位清零:这将停止连续模式的AD转换。在您的代码中,您提到已经将CONT置为0,这是正确的。 2. 将ADON位清零:这将关闭ADC模块,从而进一步确保AD转换停止。在您的代码中,没有提到这一步。您可以尝试添加以下代码来关闭ADC: ```c ADC1_CR1_ADON = 0; // 关闭ADC ``` 3. 关闭EOC中断:您提到已经开启了EOC中断,但在停止AD转换时,您可能还需要关闭这个中断。您可以使用以下代码: ```c ADC1_CR1_EOCIE = 0; // 关闭EOC中断 ``` 4. 确保没有其他代码在触发AD转换:检查您的代码,确保没有其他地方在触发AD转换。 综上所述,您可以尝试修改您的代码如下: ```c main() { CLOCK_INIT(); GPIO_INIT(); ADC_INIT(); EOCIE = 0; // 关闭EOC中断 ADC1_CR1_ADON = 0; // 关闭ADC ADC1_CR1_CONT = 0; // 停止连续模式的AD转换 // ... 其他代码 ... } ``` 这样应该可以停止连续模式下的AD转换并避免进入AD中断。如果问题仍然存在,请检查您的代码,确保没有其他地方在触发AD转换。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1792 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1626 浏览 1 评论
1094 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
732 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1682 浏览 2 评论
1943浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
742浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
578浏览 3评论
601浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
563浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 15:19 , Processed in 1.184650 second(s), Total 80, Slave 63 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号