STM32F103C8T6制作USB键盘

一、制作原因和实现的功能

        1、原因:电脑每次开机都需要输入登录密码,感觉很麻烦,就想着能不能用单片机做一个USB键盘,按一下自动给电脑发一串密码实现开机。后来又想,其实不用按键也行,用延时,延时到电脑开机再发送密码就好了,于是便有了这个制作。

        2、功能:将做好的USB插入电脑,电脑开机以后实现自动输入密码,完成登录。

USB键盘

二、需要准备的东西

        一个STM32f103c8t6最小系统板

        一个5V转3.3V模块,

        一个USB公头

        几根杜邦线,

三、过程中遇到的问题

        第一次使用USB,先是看原子哥的视频,进行学习,然后发现还是不会弄,对USB的通讯感觉很困惑,网上很多都再推荐《圈圈教你玩USB》这本书,不过我还没来的及去看,对想了解USB的人来说,我想应该是本不错的书。

       在CSDN上看了很多相关的文章后,对USB的描述符,和数据格式有了大致了解,开始尝试修改网上的一些代码,但是网络资源的质量参差不齐,即使是一些VIP资源,有的也是要么没有注释,看着难受,要么就是照搬别人的东西,乱七八糟的放着,而且最重要的还是内容错误百出。总之搞了很长时间,我还没有搞出来,时间大部分都浪费在了重复的、无用的低质量文章上了。但是这其中也有很多博主的文章很好,让我对USB的知识了解的更多了。

       对USB的描述符有了更清晰的认识以后,回头再去看ST官方例程和其他博主的代码,突然顿悟。在他们的基础上,潜心修改以后,烧录上电,成功实现功能。最主要的,我感觉还是USB的描述符,要明白他们代表的含义、层次之间的关系,例如,在配置描述符中,描述接口的数量,在接口描述符中再描述端口的数量,两个端口一个输出、一个输入。要了解什么是HID,它和USB之间是什么关系,HID描述符中的HID协议版本号,并不等于USB协议版本号,将这些配置成功,才能继续往下操作。

四、部分代码

五、5伏转3.3伏模块

六、总结

      全部代码和包含STM32F103C8T6最小系统板在内的电路图,我已经放在了文章最后的附录中,大家可以参考学习。此外,制作的这个东西,我没有加按键功能,大家需要的可以根据已有代码自行补充添加相关内容。程序中有注释,相信大家看了以后应该都能明白,不明白的也可以留言,一起交流。同时我也希望更多的开源作者能够在开源的同时,将代码注释写的再清楚一点,这样大家看着也更方便一些。关于USB全速模式需要在D+引脚接1.5K 的电阻,以及其他相关的USB基础内容,这里并没有详细介绍。第一次写博客,文章中有很多地方可能写的比较浅薄,不够好,欢迎大家指出。我也会不断学习,虚心接收大家的意见,争取做的更好,谢谢大家。

七、附录

     1、程序

           百度网盘链接:https://pan.baidu.com/s/1t34ubf8S_-bd9MilYFMC7w?pwd=67by 

           提取码:67by

     2、电路

          百度网盘链接:https://pan.baidu.com/s/1GIcad5HBB5prwExXiXe2AQ?pwd=21nf

          提取码:21nf

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值