问题最后已经解决,我总结一下排错的过程:
1、查看线路是否存在故障,引脚和复用功能是否对应(不得不说我太马虎了,使用usart3时使用的线是坏掉的!!)。
2、查看复用功能是否冲突。我同时开启了tim2和usart2,这两个复用功能冲突了,因此最后改用usrt3
3、ISR中空闲中断问题,最后我关闭了空闲中断,只开接收中断,把数据存到buff,溢出则置零。在需要调用usart3的程序中,先对buff进行清空。
总结:在ISR中避免数据处理,遵循快进快出原则。对数据接受区buff设置一定属性,如非空标志、溢出标志、buff大小等,便于其他程序块调用和处理。
问题最后已经解决,我总结一下排错的过程:
1、查看线路是否存在故障,引脚和复用功能是否对应(不得不说我太马虎了,使用usart3时使用的线是坏掉的!!)。
2、查看复用功能是否冲突。我同时开启了tim2和usart2,这两个复用功能冲突了,因此最后改用usrt3
3、ISR中空闲中断问题,最后我关闭了空闲中断,只开接收中断,把数据存到buff,溢出则置零。在需要调用usart3的程序中,先对buff进行清空。
总结:在ISR中避免数据处理,遵循快进快出原则。对数据接受区buff设置一定属性,如非空标志、溢出标志、buff大小等,便于其他程序块调用和处理。
举报