当前位置: 首页 > news >正文

德阳房产网站建设H5网站建设网站定制开发

德阳房产网站建设,H5网站建设网站定制开发,自己设计logo怎么做,网站制作手机模板STM32 USB组合设备 MSC CDC实现 教程 教程请看大佬niu_88 手把手教你使用USB的CDCMSC复合设备(基于stm32f407) 大佬的教程很好,很详细,我调出来了,代码请见我绑定的资源 注意事项 值得注意的是: 1、 cu…

STM32 USB组合设备 MSC CDC实现

教程

教程请看大佬niu_88
手把手教你使用USB的CDC+MSC复合设备(基于stm32f407)
大佬的教程很好,很详细,我调出来了,代码请见我绑定的资源

注意事项

值得注意的是:
1、
cubemx固件库存储位置是
C:\Users\你的用户名\STM32Cube\Repository\STM32Cube_FW_F4_V…(你的固件版本号)

STM32Cube_FW_F4_V1.28.1\Middlewares\ST\STM32_USB_Device_Library\Class
即可找到CompositeBuilder的例子文件
2、
注意一下,usbd_composite_builder.h中
一些宏定义
USBD_CMPSIT_ACTIVATE_MSC
USBD_CMPSIT_ACTIVATE_CDC
在#include的下面
应该移到上面去,否则编译时找不到
3、
usbd_composite_builder.h修改配置描述符数组长度,宏定义USBD_CMPST_MAX_CONFDESC_SZ改成106这里
文件里本来是300,它之后会存入uint8的数组里,300会变成44,所以要修改
4、
复合设备编译宏USE_USBD_COMPOSITE
可在编译器预处理宏定义里添加
5、
我这版本比较新,使用USE_USBD_COMPOSITE后
usbd_cdc.h中

#ifdef USE_USBD_COMPOSITE
uint8_t USBD_CDC_SetTxBuffer(USBD_HandleTypeDef *pdev, uint8_t *pbuff,uint32_t length, uint8_t ClassId);
uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev, uint8_t ClassId);
#else
uint8_t USBD_CDC_SetTxBuffer(USBD_HandleTypeDef *pdev, uint8_t *pbuff,uint32_t length);
uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev);
#endif /* USE_USBD_COMPOSITE */

这两个函数会使用组合设备版本,多了个classId的参数。参考大佬的代码,使用时可以如下修改。
比如

/*** @brief  CDC_Transmit_FS*         Data to send over USB IN endpoint are sent over CDC interface*         through this function.*         @note*** @param  Buf: Buffer of data to be sent* @param  Len: Number of data to be sent (in bytes)* @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY*/
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
{uint8_t result = USBD_OK;/* USER CODE BEGIN 7 */USBD_HandleTypeDef *pdev = &hUsbDeviceFS;/* Get the class index relative to this endpoint */uint8_t idx = USBD_CoreFindEP(pdev, CDC_IN_EP);//获取classIDMy_usb_fs_cdc_transmited = false;USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData;if (hcdc->TxState != 0){return USBD_BUSY;}USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len, idx);result = USBD_CDC_TransmitPacket(&hUsbDeviceFS, idx);/* USER CODE END 7 */return result;
}

关于我的资源

最后成功截图
成功现象
我的开发环境:vscode eide插件 工具链arm-gcc
使用的芯片是stm32f405rgt6,大容量设备是SD卡,调试用的串口是串口6

http://www.yayakq.cn/news/273161/

相关文章:

  • 网站建设的扩展阶段包括南京网站建设雷仁网络
  • 有什么有什么好的学做饮品的网站企业网站建站策划书
  • 微信认证 网站小程序开发兼职
  • 做网站可以把文字做成图片吗网站后台扫描插件
  • 网站集约化建设背景公司logo设计大全 图片欣赏
  • 网站seo优化心得南阳专业网站建设价格
  • 中小企业网站建设咨询wordpress结构
  • 东莞专业做网站成都高新区国土规划建设局网站
  • 西安做网站 怎样备案部队网站建设总结
  • 东莞网上做公司网站北京建筑培训网
  • 河北区做网站公司经典重庆论坛新闻论坛怎么了
  • 大连建设公司网站金湖做网站
  • 深圳定制网站制作报价app推广渠道商
  • 网站百度快照在合肥哪里学网站建设
  • 有ip地址如何做网站咸阳万企网站建设
  • 网站开发软件系统个人网页设计
  • 粉红色主题 模板 网站 在线预览wordpress 数据库配置错误
  • 唐山网站建设系统免费网站下载直播软件免费
  • 提供手机网站怎么做哪里可以学网站开发
  • 时光慢网站建设方案论文张家口市一建公司官网
  • 广东省建设注册执业资格中心网站怎样建立个人网站?
  • 四海网络网站建设定制网站服务器软件
  • 最好的设计师平台网站wordpress后台无法登录
  • 设计师网站登录入口网上销售渠道
  • 网站建设都包含什么步骤沈阳个人网站建设选择
  • 网易网站开发语言沈阳免费做网站
  • 网页建设与网站设计it运维外包公司
  • 建设企业网站怎么样仓库管理系统需求分析
  • 北京大型网站开发潍坊mip网站建设
  • 印度做杂质的网站aspcms手机网站源码