first commit

This commit is contained in:
TuxMonkey
2026-01-17 14:06:59 +08:00
commit 8c6429f05a
497 changed files with 322072 additions and 0 deletions

31
bsp/usb/bsp_usb.c Normal file
View File

@@ -0,0 +1,31 @@
/**
* @file bsp_usb.c
* @author your name (you@domain.com)
* @brief usb是单例bsp,因此不保存实例
* @version 0.1
* @date 2023-02-09
*
* @copyright Copyright (c) 2023
*
*/
#include "bsp_usb.h"
#include "bsp_log.h"
#include "bsp_dwt.h"
static uint8_t *bsp_usb_rx_buffer; // 接收到的数据会被放在这里,buffer size为2048
// 注意usb单个数据包(Full speed模式下)最大为64byte,超出可能会出现丢包情况
uint8_t *USBInit(USB_Init_Config_s usb_conf)
{
// usb的软件复位(模拟拔插)在usbd_conf.c中的HAL_PCD_MspInit()中
bsp_usb_rx_buffer = CDCInitRxbufferNcallback(usb_conf.tx_cbk, usb_conf.rx_cbk); // 获取接收数据指针
// usb的接收回调函数会在这里被设置,并将数据保存在bsp_usb_rx_buffer中
LOGINFO("USB init success");
return bsp_usb_rx_buffer;
}
void USBTransmit(uint8_t *buffer, uint16_t len)
{
CDC_Transmit_FS(buffer, len); // 发送
}

30
bsp/usb/bsp_usb.h Normal file
View File

@@ -0,0 +1,30 @@
/**
* @file bsp_usb.h
* @author your name (you@domain.com)
* @brief 提供对usb vpc(virtal com port)的操作接口,hid和msf考虑后续添加
* @attention 这一版usb修改了usbd_cdc_if.c中的CDC_Receive_FS函数,若使用cube生成后会被覆盖.后续需要由usbcdciftemplate创建一套自己的模板
* @version 0.1
* @date 2023-02-09
*
* @copyright Copyright (c) 2023
*
*/
#pragma once
#include "usb_device.h"
#include "usbd_cdc.h"
#include "usbd_conf.h"
#include "usbd_desc.h"
#include "usbd_cdc_if.h"
typedef struct
{
USBCallback tx_cbk;
USBCallback rx_cbk;
} USB_Init_Config_s;
/* @note 虚拟串口的波特率/校验位/数据位等动态可变,取决于上位机的设定 */
/* 使用时不需要关心这些设置(作为从机) */
uint8_t *USBInit(USB_Init_Config_s usb_conf); // bsp初始化时调用会重新枚举设备
void USBTransmit(uint8_t *buffer, uint16_t len); // 通过usb发送数据

5
bsp/usb/bsp_usb.md Normal file
View File

@@ -0,0 +1,5 @@
# bsp usb
简单写点,有待优化. 目前仅支持虚拟串口通信,暂未开发其他内容.
注意,为了增加发送完成和接收完成回调,对Inc/usbd_xxxx.h四个文件做了修改,对Src/usbxxx.c也进行了修改。