本博客主要总结移植过程所经历的各种问题
1.程序下载和USB连接问题,如果没有使用ST Link 则需要通过串口下载,使用Flymcu烧录固件,使用串口通讯助手测试USB虚拟串口通讯。因为下载时boot0要置1,需要调整跳线和拨码开关,而USB通讯时boot0要置零,这也是很多博友USB虚拟串口装完程序写完驱动仍然叹号的原因。可以采用以下方法,就是将USB线和串口线都接好,接到电脑两个USB口,然后将boot0置1,boot1置0。此时下载程序,如果flymcu提示等待,按reset开始下载。下载完成后,首次mcu会自动从USB重启,这也省去了频繁变换条线的麻烦,当程序烧录好,不再改变时,将条线冒全部置0,同时连接USB线进行通讯。
2.USB程序调通时没有问题,但是移植到相应的UCOSII系统中要注意,USB的初始化等前期函数,不能放在优先级低的任务中,会导致部分发送丢失。这个问题是偶发,所以很难发现。因为起始任务的优先级都不高,所以不能将U驱动的模块放入起始任务中。当然可以把他放在main()函数中,这样优先级也非常高。当然串口i解析的while(1)程序是可以放在低级别任务中的,所以说这个对整体编程没有影响。