ST意法半导体
直播中

余温重顾

10年用户 972经验值
擅长:可编程逻辑 嵌入式技术 EMC/EMI设计
私信 关注
[问答]

如何使用USB为STM32F205构建一个简单的应用程序?

下面给出的是我的代码。
Usbread.c
< #include "Usbread.h"
#include "usbd_cdc_if.h"
uint8_t buffer1 [20];;
uint8_t buffer_index1;
uint8_t REDLED[15] = “LED 红灯亮起”;
uint8_t REDLEDF[15]=“LED 红色关闭”;
uint8_t GREENLED[15]=“LED 绿色亮起”;
uint8_t GREENLEDF[15]=“LED 绿色关闭”;
void USB_read1(uint8_t *buff)
{
buffer1[buffer_index1]= *buff;
如果 (memcmp(buffer1,REDLED,10)==0)
              {
              HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_SET);
             }
           否则如果 (memcmp(buffer1,REDLEDF,11)==0)
               {
                HAL_GPIO_WritePin(GPIOA,GPIO_PIN_2,GPIO_PIN_RESET);
               }
           否则如果 (memcmp(buffer1,GREENLED,12)==0)
               {
                HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
              }
           否则如果 (memcmp(buffer1,GREENLEDF,13)==0)
               {
                HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
               }
buffer_index1 ++;
          }
>
面包.h
<
#include "main.h"
#include "usb_device.h"
#include "usbd_cdc_if.h"
#include "STM32f2xx_hal.h"
extern void USB_read1(uint8_t *buff);
>
usbd_cdc_if.c
<
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
/* 用户代码开始 6 */
USB_read1(Buf);
// CDC_Transmit_FS(Buf,sizeof(Buf));
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
返回(USBD_OK);
/* 用户代码结束 6 */
}
>









回帖(1)

郭金

2023-1-12 11:12:57
由于您无法真正单步执行/调试 USB 设备代码,因此我建议使用串行端口/UART 输出遥测信息,也许会转储您尝试比较的内存结构,并以微创方式查看发生了什么。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分