关于VCP(Virtual Com Port)拓展的调试经历(二)

  最近从回母校出差回来,还上台与学弟学妹们交流了一下体验,作为一个毕业二十天的毕业生,能有这样的机会,实在是难得,也是对自己实力的一种肯定,很是激动,平复了几天。也有几天没有碰代码。。。

  继续上次未完成的VCP调试。。。。。先说结果,在昨天捣鼓一天之后历时两个星期终于把“当时看起来很简单甚至打算一天解决的”添加VCP项目解决了。再说体会,实属不易,在已有项目中添加功能,坑太多了。因为没有人指导,基本所有的坑都自己亲身踩了一遍,一个很傻瓜的问题会卡住你半天甚至几天。

  因为需要添加VCP的LoRaMAC工程是比较老旧的自建项目,且代码中的芯片型号为L151CB,而新生产的节点选择的主控为L151CC,所以真要认真起来也算是一个小型的代码移植工作,实际工作起来也确实如此,甚至在调试过程中出现了代码在CB中可以正常运行CC中不能正常运行的令人傻眼的情况。

 

  最开始的思路是正常的工程移植思路,也就是分别调通VCP功能和LoRaMAC的功能,然后再将基于CB的LoRaMAC项目中将VCP的Driver驱动文件夹直接替换,然后在逻辑代码中将初始化关联一下就可以了。单独运行VCP,调试打印一切正常,但完成添加工作后,发现LoRaMAC的代码不能正常运行了!

因为LoRaMAC对时钟配置是非常苛刻的,又因为USB启用了HSE,所以对时钟配置有无法避免的改动,所以我以为是时钟配置的问题,花了大量的时间去与源代码对比,更改了许多种晶振配置方式,来满足LoRaMAC的要求,但是依旧代码无法正常运行。此时我发现前面一个重要的细节,我是将新版CubeMX给的Driver驱动对老旧工程的驱动文件夹直接替换,会不会是新驱动与老工程代码不兼容的问题? 在实在束手无策,只有抓住这个最后的可能性,秉着这个想法,我将新生成VCP工程的驱动文件LL库的usb驱动添加到LoRaMAC工程的驱动文件夹中,在调整工程后下载发现LoRaMAC代码依旧在CC上无法正常运行,我傻眼了,我连USB初始化都没有做,连晶振配置都没有改动,仅仅是添加了驱动文件而已,我意识到不可能是USB和晶振配置的问题,将代码切换到CB上却又发现代码是正常运行的。。。。最后检查发现师兄给的LoRaMAC源代码在CC上根本就不能跑。。。这算是他坑我的许多地方的其中一个了。。害我研究了一天的晶振。。再更换了CC能跑的LoRaMAC版本后,继续上述的USB初始化。这一回LoRaMAC代码正常运行了,但是整个项目并没有这么简单就解决。

  插入节点发现USB枚举成功但是串口无法打开,打开串口XCOM会直接失去响应。开始以为是遇见前一篇随笔中提到的heapsize问题,随即查阅了大量资料,并将Heapsize改为400、600、1000、等,串口无响应问题依旧。这下人真的傻了,VCP工程中单独的初始化,枚举与打印都是正常的,将驱动文件添加到LoRaMAC工程里就不正常了,这里必须排除初始化代码的问题。耐心的倒一杯茶坐下来细细的看两个工程驱动文件的不同处,在点开usbd_conf.c文件后发现VCP工程中usbd_conf.c包含的STM32L1xx_LL_USB_H,而在LoRaMAC工程中这个文件缺缺少了STM32L1xx_LL_USB_H,随即针对这种相同的问题对STM32L1xx_LL_USB_H在各个文件中进行了添加。编译下载调试,问题还是存在,但至少算是解决了一个潜在的问题。继续查看驱动文件,最后发现旧工程中Hal库的PCD驱动与VCP工程是不一样的,而USBCDC刚好要用到HAL的PCD文件,刚开始移植USB驱动时只针对了老旧工程中没有的标准库LL库USB驱动做了添加,而HAL库的PCD驱动旧工程是已经拥有的,此时又发现两个工程的PCD驱动是不一样的,于是将VCP工程的PCD驱动对旧工程做了一个替换,替换之后VCP无响应问题解决,至此所有的问题都解决了,成功在LoRaMAC代码中添加了VCP功能。

 

总结一下,遇到的主要问题都是出在老旧工程的驱动文件不兼容上,换句话说问题就是出在你没有经验上。如果有移植经验的人,一开始就应该检查新功能所用到的驱动文件来与目标工程的驱动文件做一个对比,然后增查删改。当看到串口的打印与VCP的打印同时出现在屏幕上时,整个人都解脱了,当初看起来很简单的问题,整整卡了你两个星期,面子实在丢大了。

  下一个项目是之前接手的POWERBUS项目,也是我第一个涉及到总线的项目,目前因为主站被我调试时用的USB转串口模块烧坏了,所以才有时间来完成VCP项目,切记USB转串口电平分为5V和3.3V,当初也是没想到大于1.7V都能给它烧了,也就根本没考虑过电平转换的问题,下次有关设备需要熟读原理图和用户手册才能做相应的调试。

 

 

 

 

 

 

 

---有事做,有人爱,有所期待

转载于:https://www.cnblogs.com/SaberArthur/p/11175124.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值