2020年的时候,我写了几篇文章,都是关于USB的:基于STM32CubeMX的USB鼠标例程、基于STM32CUBE的USB键盘例程、5分钟,使用STM32CubeMX把你的单片机变成U盘。
2021年初,我基于这些功能设计了一个USB的小板子,还录了视频教程,放到了B站:

里面详细介绍了使用STM32的USB如何实现鼠标、键盘、手柄等外设。
路人甲:博主好厉害,USB研究的很深入啊~~~
呵呵,实属皮毛,只能算会用。
路人乙:但是好疑惑啊,博主为啥去研究USB呢?
在电子工程师的职业生涯里,总有那么几块板子:它们焊着你的学费,藏着你的委屈,
但在某个芯片暴涨的深夜,突然就成了你的天使投资人!

时间回到2016年,当时我参加工作已经六七年了,自以为会了点技术,出门在外能被人尊称一声:刘工!
那个时候QQ群还没现在这么冷清,我经常在群里闲逛。时间久了,就想能不能接点活,挣点零花钱也好。
某天,群里进来个新人,刚进来就问谁会单片机,有个项目想找人写个程序。从说话方式能看出来,不是学生那种代做毕设的。我一看,有点意思,给他发私信,问他要写什么程序。
一个广东那边的老板,是做那种街机游戏的。沟通了几次,基本定下来了,做的是类似游戏转盘的那种控制器。硬件已经有了,想找人写段控制程序。
当时好像是第一次接私活,也不知道报多少合适。而且硬件是个现成的(无处不见的STC)小板子,写个不太复杂的控制程序,想了想,就要了几百。
前后差不多十来天吧,就写完了。硬件给他寄回去,测了测没毛病,两边都很满意。他收获了控制器,我也体验了一把接私活的经历。
过了一段时间,应该是2016年的10月份前后吧,老板在Q上问我会不会用STM32,想做个类似游戏手柄的控制器。
我:你就说你想抄哪家,把样机寄过来吧!
于是我收到了这个:

收到样机我还愣了一下,芯片上没有STM32的丝印,只有一个大大的”B”。我问他确不确定是STM32,他说是,花了200块钱找人鉴定的,型号就是STM32F103C8T6。
看来是被激光磨掉后,重新打标了。
说实话,在那之前我没接触过手柄,对USB的认知也还停留在插拔U盘。鼠标键盘倒是接触过,不过是PS/2接口的。所以这次,确实碰到了我的知识盲区,怎么搞?
当我在屋里来回溜达想办法的时候,忽然想起来,去年有人送了我几本书,其中一本就是大名鼎鼎的:《圈圈教你玩USB》

这本书我收到之后就放书架上吃灰了,赶紧找出来,翻了两眼。前有USB的书,后有USB的项目,在那一瞬间,我觉得我被命运选中了,这个项目就是命中注定要遇见我。
于是我花了差不多半个月的时间啃这本书,总算把USB的一些基础搞清楚了。但是只知道基础原理也不行,我也不可能凭空手撕一个完整的USB源码出来。于是我尝试在网上搜索,看能否找到相关的例程。
还真被我找到了。
于是我分两步开始推进:第一步,测量样机的尺寸、接线,其实就是抄板。第二步,程序移植,把例程中USB手柄的功能移植到STM32F103C8上。
前后差不多一个多月吧,看书+抄板+打样+程序移植+调试,弄完了。我把样机寄给老板,让他去测试。
但是这次我忘了一件事,就是没有提前跟他谈费用的事。那个时候的我比较天真,认为应该先做样品,表达自己的诚意,做好之后再去谈费用。但这样是不对的,因为无论是画图还是程序调试,对我来说都是成本。一旦没谈好就开始干活,后面再谈的时候,就比较被动了。
而我,直到样机寄出,也没张嘴说费用的事。
那边老板收到样机之后,测了下,能用,问我200套是什么价格。我当时还挺激动,算了下成本,在那基础之上给了他报价。他说可以,让我准备去做了。
于是我买料,联系焊接厂,开始安排了。

中间还挺着急,打电话问进度。我说我已经买了200套的物料,在焊接厂那焊着呢。
他一听,赶紧说了一句,你先别做这么多,我这次只要20套啊。
我顿时有种不好的预感,我说物料都买了,现在已经在焊接厂了。
忘了后续咋说的了,总之电话结束后,我就隐隐猜到了结局。果然,那20套寄出后,就再也没提过拿货的事。
故事到这其实该结束了,但是这位老板貌似把我当成了免费劳动力,还想继续合作。我这个人那会儿还不太会拒绝人,于是写了个简单的合同,要求先付部分费用,研发完成后再付剩余的费用。发给那位老板,但是老板看过之后依然不提费用的事。
所以后面的事情我也不怎么上心了,一切以工作为主。实在无聊的时候,陪他扯一扯,慢慢地,后面他也不找我了。
只剩下这100多套板子,在地下室默默地陪着我。我也时刻用它们警醒自己,做事先谈好条件,不做老好人。
不幸中的万幸,2020年疫情期间,芯片疯狂涨价,有时候甚至拿不到货。当我在地下室抓着头皮想货源时,目光扫过了它们,于是:

没有想象中的大赚一笔,只是回了波血。除了学到的知识,这可能是它们能为我做的最后一件事了吧,感谢你们的陪伴,再见!