连续两次反了检测标志位错误的代码,
while ((SCI0->SSR03 & _0040_SCI_UNDER_EXECUTE) == 1);
这个代码会一直false的,因为任何数与之与都不可能等于1.
造成这样的错误,是原来经常调用API,没有API做了一层处理。
while ((SCI0->SSR03 & _0040_SCI_UNDER_EXECUTE) );
写成这样 只要大于0 就是为真。
while ((SCI0->SSR03 & _0040_SCI_UNDER_EXECUTE) == _0040_SCI_UNDER_EXECUTE);
每次都写成是否等 最好。避免理解疏忽。