在写ADC+DMA采样时,遇到了一个很恶心的bug,就是初始化代码的位置顺序会影响代码运行的正确性!!!
用实例说话:
ADC初始化时,按照①和②的顺序进行初始化的,初始化代码中有:
读取电压时,显示读取的内容固定是20V左右。。奇怪的是它还是会变的。。。
请观赏bug:
如果把①和②换位置:
正常咧!!!巴适!!!
遇到这个bug以后仔细想想,①和②虽然都是初始化, 但②是对使用ADC外设的初始化,重在使用;①是通道初始化,是进一步细致的初始化。②的初始化顺序就应该在①的前面,怎么一想,这个奇奇怪怪的bug也就勉强能说得通了(心理安慰)(心理安慰),比如DSPF28335对上电顺序还有要求嘞:内核电源先上电,3.3V才能上电,否则I/O引脚就会产生不稳定的状态!