|
做了几个月的无线DAP下载器,工作太忙原因一直拖着,从最原始的CMSIS-DAP固件到把它精简到现在,最原始的采用了缓冲,一直没看懂,然后改成了收到USB的数据就马上处理,处理完马上发出给PC就可以了。
USB库使用TeenyUSB,可以快速开发USB复合设备(HID+CDC+MSC),我也将DAP快速移植到了STM32F072上,很简单,具体可以看我代码。
无线传输使用ESP8266来将串口收到的数据通过TCP传输,NONOS版本透传可以6KB/S,RTOS版本透传2KB/S,待优化(欢迎大家提供高速稳定的传输方式)
有线DAP的最精简化代码:
- uint8_t usbd_hid_process_online(void)
- {
- #if ONLINE
- //如果收到数据
- if (dealing_data)
- {
- DAP_ProcessCommand(MYUSB_Request, MYUSB_Response);
- tusb_hid_device_send(&hid_dev, MYUSB_Response, DAP_PACKET_SIZE);
- dealing_data = 0;
- return 1;
- }
- #endif
- return 0;
- }
复制代码
无线DAP的思路:
发射端:
1、USB收到HID的数据
2、把HID收到的数据发给接收端(通过串口或者SPI)
3、一直等待回复这一包数据的回复
4、收到接收端回复的数据(通过串口或者SPI)
5、将收到的数据通过HID发出
接收端:
1、收到发射端传来的数据(通过串口或者SPI)
2、把数据传给DAP_ProcessCommand函数处理
3、处理完成的结果发出(通过串口或者SPI)
4、完成、等待下一包处理
附上全套源代码:
https://github.com/Kevincoooool/KS_DAP_Wireless
欢迎一起优化Star
B站视频:https://www.bilibili.com/video/BV1tZ4y1N7ia |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|