完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本人用STM32F103RBT6 的 ADC 1模块的通道14 对外部的电压进行连续检测, 当中用到了DMA1传输。为了对电压的极限范围进行监测,用了ADC1模块中的模拟看门狗中断。为了保险期间,程序编写时都用STM32里的现成库函数进行操作。
在线调试基本没有问题 。外部的电压保持在1.25V左右,用WATCH 窗口可以看到 DMA1传输到内部存储器的AD值在1568左右。当把模拟看门狗中断的上限值改为1569(下限值保持100不变),在线调试时,进入ADC1_2_IRQHandler()中断函数,中断函数里的报警灯也如期亮了起来。 把模拟看门狗中断的上限值改为2000(对应外部输入电压为1.6V),下限值还是保持100不变。烧录程序,断电,不连DEBUG工具。重新上电,发现报警红灯亮了起来 。 再断电,再重新上电,报警红灯依旧亮了!!!! 是否上电时AD检测端的电压波动,导致进入中断。 于是把模拟看门狗中断的上限值改为4095(对应外部输入电压为3.28V),下限值还是保持100不变. 断电,不连DEBUG工具,重新上电。发现问题依旧。 为了排除上电时AD检测端的电压波动影响。 于是在程序里先把模拟看门狗中断的使能位关掉。 通过一个按键的按下再把模拟看门狗中断的使能位打开。模拟看门狗中断的上限值保持4095 不变。 上电后,等了一段时间 ,按下按键, 模拟看门狗中断被使能。很不幸, 报警红灯又亮了! 是不是设置的问题啊 ,于是再对了STM32里面的ADC设置库函数,DMA设置库函数等。也没有发现问题。改设置的都设置了。 现在的问题:只要不连DEBUG工具, 烧录程序后,重新上电, 模拟看门狗就会进入中断函数,万恶的红灯就会亮起来!!!! 查不出问题到底究竟在哪里, 求各位大侠指教啊!!! 原子大大能不能指点一下,万分感谢!!!! |
|
相关推荐
10个回答
|
|
没人回复啊 ! 我顶一下!!!!
|
|
|
|
是否考虑过可能有低于下限而进入报警的情况呢?
|
|
|
|
用示波器看看AD检测端的波形变化如何
|
|
|
|
对比连DEBUG工具和不连时有关电路的电平状态,看有没有不同
|
|
|
|
1、你的电压1.25V,正常波动不会很大。 先用示波器查看一下板子上电时,外部电压的跳动情况,不太可能有电压突变。
2、再仔细检查你的程序代码配置,觉得还是程序配置的问题。 |
|
|
|
|
|
|
|
|
|
|
|
楼主,最后你怎么 处理的?我也遇到类似情况啊!
|
|
|
|
我也遇到这样的情况 求解答
|
|
|
|
我也遇到这样问题,做种解决了,原因是上下限阈值设置错误,高于上限,或者低于下限产生中断,不要把它弄反了,否则总是符合中断条件
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
643 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
914 浏览 2 评论
2026 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1125 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1550 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 00:27 , Processed in 0.915258 second(s), Total 90, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号