做ADC测试的时候,调用adc = HalAdcRead(7,HAL_ADC_RESOLUTION_14);这个函数读取ad值。
起初读到的值一直不对,然后debug分步调试发现了一个问题:
在这句话处直接点Setp Over,读到的ad值跟以前一样是错误的。
但是如果我点Setp Into,进入函数一步步执行的话,最后出来的ad值是我预期的正确值。
对协议栈不是很清楚,难不成有什么设置吗??
VV:
你的意思是全速运行的时候得到的结果不对,是吗?
如果单步运行没问题,全速也不会有问题的,跑的是同一段程序。
lei:
回复 VV:
后来我在在HalAdcRead之前添加了一句P0SEL |= 0xE0;就没有上面的问题了,我想应该是协议栈中其他地方又用到了这几个IO口,修改了设置,具体问题的原因暂时没有找到。
ED LG:
,,用10K 与100K调到相同的电压,你再读ADC值 你会发现有意思的地方。。。
这是问题 想必很多都人都不敢再用ADc啦