完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教大家,我在使用STM8S105S4的AD转换时,AD转换已经可以正常工作,但在启用模拟狗时,实际电压远远超过上限电压时,AWD位总是无法置1。
我用的是IAR,发现设置好ADC_HTRL=0x01; ADC_HTRH=0xf5;后,打开IAR的寄存器监视,里面显示出却是高低位反过来了。试过用库函数也是一样。 。比如我程序里设置ADC_HTRL=0x01; ADC_HTRH=0xf5;后,这样计算,上限电压是2.45。AD转换后显示的电压达到3.2V了AWD都还没置1请问这是什么原因? 全部代码如下:
|
|
相关推荐
1个回答
|
|
首先,我们需要确保STM8S105S4的AD转换和模拟狗功能已经正确配置。以下是一些可能的解决方案:
1. 确保ADC通道已经正确配置。检查ADC通道的输入引脚是否正确连接到模拟信号源。 2. 确保时钟配置正确。STM8S105S4的ADC时钟需要正确配置,以确保AD转换的精度和速度。请检查你的`Clock_Config`函数是否正确设置了时钟。 3. 检查ADC配置。确保你已经正确设置了ADC的触发方式、分辨率、数据对齐等参数。 4. 检查模拟狗阈值设置。你提到的问题可能是由于模拟狗阈值设置不正确导致的。请确保你已经正确设置了ADC_HTR和ADC_LTR寄存器的值。你可以尝试以下设置: ```c ADC_HTRL = 0x00; // 设置低阈值的低字节 ADC_HTRH = 0x00; // 设置低阈值的高字节 ADC_LTRH = 0xFF; // 设置高阈值的高字节 ADC_LTRL = 0xFF; // 设置高阈值的低字节 ``` 这将设置低阈值为0V,高阈值为最大值(取决于ADC分辨率)。 5. 检查AWD中断。确保你已经正确配置了AWD中断,并在中断服务程序中处理AWD事件。 6. 检查IAR编译器设置。确保你的IAR项目设置正确,没有导致寄存器值翻转的问题。 7. 如果问题仍然存在,请尝试使用STM8S标准外设库或STM8S Discovery套件提供的示例代码,以确保你的代码没有逻辑错误。 8. 如果以上方法都不能解决问题,建议联系STMicroelectronics的技术支持,他们可能会提供更专业的帮助。 希望这些建议能帮助你解决STM8S105S4的AD模拟狗问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1609 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1540 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
681 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1587 浏览 2 评论
1861浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
528浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
503浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 22:31 , Processed in 0.740859 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号