本来是在做bootloader通过串口在线更新程序的,boot程序中串口初始化是用smclk115200波特率,app程序中串口用aclk9600波特率初始化,app程序中的串口无法工作(boot和app用的是同一个串口),但是能跳转到app程序,而且运行正常,其它功能都正常(包括另外几个用alck9600的串口)。我发现,把app程序的串口初始化改为smclk波特率9600,跳转以后串口就能正常收发了。去掉BootLoader功能,(为了还原上述过程)在同一个程序中先初始化串口,时钟源选择smclk,波特率9600,然后再初始化一遍,用aclk,波特率9600,串口不能正常工作。反过来(先用aclk去初始,再用smclk去初始)串口就不能工作了,这是为什么?谢谢大家了 |