mirror of
https://gitee.com/dlmu-cone/bf_original_balance_chassis
synced 2026-07-24 03:27:45 +08:00
将默认视觉通信换为usb虚拟串口,修复视觉发送roll错误;增加了attach调试支持
This commit is contained in:
@@ -4,37 +4,22 @@
|
||||
* @brief usb是单例bsp,因此不保存实例
|
||||
* @version 0.1
|
||||
* @date 2023-02-09
|
||||
*
|
||||
*
|
||||
* @copyright Copyright (c) 2023
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#include "bsp_usb.h"
|
||||
#include "bsp_log.h"
|
||||
|
||||
static uint8_t *bsp_usb_rx_buffer; // 接收到的数据会被放在这里,buffer size为2048
|
||||
// 注意usb单个数据包(Full speed模式下)最大为64byte,超出可能会出现丢包情况
|
||||
|
||||
// 这是传输完成的回调函数,在usbd_cdc_if.c中被调用
|
||||
__weak void USBTransmitCpltCallback(uint32_t len)
|
||||
{
|
||||
// 本次发送的数据长度
|
||||
UNUSED(len);
|
||||
// 传输完成会调用此函数,to do something
|
||||
}
|
||||
|
||||
// 这是接收回调函数
|
||||
__weak void USBReceiveCpltCallback(uint32_t len)
|
||||
{
|
||||
// 本次接收的数据长度
|
||||
UNUSED(len);
|
||||
// 传输完成会调用此函数,to do something
|
||||
}
|
||||
|
||||
uint8_t *USBInit()
|
||||
uint8_t *USBInit(USB_Init_Config_s usb_conf)
|
||||
{
|
||||
// 上电后重新枚举usb设备
|
||||
USBTransmit((uint8_t *)"USB DEVICE READY", sizeof("USB DEVICE READY")); // 发送初始化完成信息
|
||||
bsp_usb_rx_buffer = CDCInitRxbufferNcallback(USBTransmitCpltCallback,USBReceiveCpltCallback); // 获取接收数据指针
|
||||
LOGINFO("USB init success");
|
||||
bsp_usb_rx_buffer = CDCInitRxbufferNcallback(usb_conf.tx_cbk, usb_conf.rx_cbk); // 获取接收数据指针
|
||||
// usb的接收回调函数会在这里被设置,并将数据保存在bsp_usb_rx_buffer中
|
||||
return bsp_usb_rx_buffer;
|
||||
}
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
* @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"
|
||||
@@ -17,9 +17,15 @@
|
||||
#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(); // bsp初始化时调用会重新枚举设备
|
||||
uint8_t *USBInit(USB_Init_Config_s usb_conf); // bsp初始化时调用会重新枚举设备
|
||||
|
||||
void USBTransmit(uint8_t *buffer, uint16_t len); // 通过usb发送数据
|
||||
Reference in New Issue
Block a user