搜索
bottom↓
回复: 29

USB的Device开发:还是ST的STM32CubeMX好用。

  [复制链接]

出0入0汤圆

发表于 2015-11-30 19:35:13 | 显示全部楼层 |阅读模式
用STM32CubeMX设置"mode"为Device_Only,"class for FS IP"为Communication Device class.
生成代码只在几个地方修改一点代码,自己写的不超过50行代码,PC就可以识别为串口了。

1.Heap Size 要加大。

2.usbd_cdc_if.c 中要加上:
1)
USBD_CDC_LineCodingTypeDef LineCoding;

2)
#define APP_RX_DATA_SIZE  64
#define APP_TX_DATA_SIZE  64


3)
  case CDC_SET_LINE_CODING:
    LineCoding.bitrate    = (uint32_t)(pbuf[0] | (pbuf[1] << 8) |\
                            (pbuf[2] << 16) | (pbuf[3] << 24));
    LineCoding.format     = pbuf[4];
    LineCoding.paritytype = pbuf[5];
    LineCoding.datatype   = pbuf[6];
   
    break;

  case CDC_GET_LINE_CODING:
    pbuf[0] = (uint8_t)(LineCoding.bitrate);
    pbuf[1] = (uint8_t)(LineCoding.bitrate >> 8);
    pbuf[2] = (uint8_t)(LineCoding.bitrate >> 16);
    pbuf[3] = (uint8_t)(LineCoding.bitrate >> 24);
    pbuf[4] = LineCoding.format;
    pbuf[5] = LineCoding.paritytype;
    pbuf[6] = LineCoding.datatype;     
    break;

4)
static int8_t CDC_Receive_FS (uint8_t* Buf, uint32_t *Len)
{
  /* USER CODE BEGIN 6 */
        memcpy(UserTxBufferFS,Buf,*Len);
        CDC_Transmit_FS(UserTxBufferFS,*Len);
        USBD_CDC_ReceivePacket(hUsbDevice_0);
  return (USBD_OK);
  /* USER CODE END 6 */
}

3.  stmcdc.inf文件
;
; STMicroelectronics Comunication Device Class driver instalation file
; (C)2006 Copyright STMicroelectronics
;

[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%STM%
LayoutFile=layout.inf
DriverVer=10/02/06

[Manufacturer]
%STM%=DeviceList

[DestinationDirs]
DefaultDestDir=12

[SourceDisksFiles]

[SourceDisksNames]

[DeviceList]
%DESCRIPTION%=STMUSB, USB\VID_0483&PID_5740

;------------------------------------------------------------------------------
;  Windows 2000/XP Sections
;------------------------------------------------------------------------------

[STMUSB.nt]
include=mdmcpq.inf
CopyFiles=DriverCopyFiles
AddReg=STMUSB.nt.AddReg

[DriverCopyFiles]
usbser.sys,,,0x20

[STMUSB.nt.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[STMUSB.nt.Services]
AddService=usbser, 0x00000002, DriverService


[STMUSB.nt.HW]
include=mdmcpq.inf

[DriverService]
DisplayName=%DESCRIPTION%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys

;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
STM="STMicroelectronics"
DESCRIPTION="STM32 Virtual COM Port"

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2015-11-30 19:39:40 | 显示全部楼层
USB模拟串口?

出0入4汤圆

发表于 2015-11-30 19:55:21 来自手机 | 显示全部楼层
NB阿!不明觉厉!能讲详细点就好了

出0入0汤圆

发表于 2015-11-30 20:25:36 | 显示全部楼层
经常使用USB,留个记号。这样开发能节省很多时间

出0入0汤圆

发表于 2015-11-30 21:33:35 | 显示全部楼层
其实ST的,新唐的都挺好用。

出100入101汤圆

发表于 2015-11-30 22:31:36 来自手机 | 显示全部楼层
不错,学习

出0入0汤圆

发表于 2015-12-2 13:42:20 | 显示全部楼层
CubeMX生成的代码一堆BUG,STM32L0系列中串口初始化错误、DMA初始化错误。。。。

出0入0汤圆

发表于 2015-12-2 15:01:28 | 显示全部楼层
匿名顽徒 发表于 2015-12-2 13:42
CubeMX生成的代码一堆BUG,STM32L0系列中串口初始化错误、DMA初始化错误。。。。 ...

没那么惨。有小错误,但仍然是主流,图形化是未来

出0入0汤圆

 楼主| 发表于 2015-12-2 21:12:16 | 显示全部楼层
尽信书不如无书!

尽信“STM32CubeMX”还不如没有!

尽信楼主一楼说的还不如没有!

STM32CubeMX还是在一定程度上可信可用的。

出0入0汤圆

发表于 2015-12-2 22:04:17 | 显示全部楼层
支持楼主!
有没有X64可以用的驱动?

出0入0汤圆

 楼主| 发表于 2015-12-2 23:14:55 | 显示全部楼层
icevel 发表于 2015-12-2 22:04
支持楼主!
有没有X64可以用的驱动?

从stmcdc.inf文件内容上可以看出,usb转串口用的是windows自身的驱动。

64位没用过,windows系统应会还有这部分的驱动的。

出0入0汤圆

发表于 2015-12-3 08:43:59 | 显示全部楼层

出0入0汤圆

发表于 2015-12-3 09:49:14 | 显示全部楼层
还没用过这个图形配置代码

出0入0汤圆

发表于 2015-12-5 13:58:01 来自手机 | 显示全部楼层
usb 串口。mark

出0入0汤圆

发表于 2015-12-13 08:50:53 | 显示全部楼层
这个不错,加到工程中试一下

出0入0汤圆

发表于 2015-12-15 14:23:06 | 显示全部楼层
这个usb模拟串口后,PC端还要写驱动程序么?
头像被屏蔽

出0入0汤圆

发表于 2016-5-18 10:12:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2016-6-24 17:04:57 | 显示全部楼层
开发USB的福音。

出0入0汤圆

发表于 2016-7-1 09:19:55 | 显示全部楼层
谢谢分享,

出0入0汤圆

发表于 2016-7-1 13:06:16 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2016-9-21 14:31:32 | 显示全部楼层
顶一下,

出0入0汤圆

发表于 2016-9-21 15:19:03 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2016-11-26 23:23:03 来自手机 | 显示全部楼层
谢谢分享 STM32 USB HID CDC

出0入0汤圆

发表于 2016-12-3 23:14:18 | 显示全部楼层
请问有在win7 64位系统上安装驱动成功过吗?

出0入0汤圆

发表于 2016-12-4 13:17:45 | 显示全部楼层
把win7 64b系统切到测试模式下,再安装,,,

出0入0汤圆

发表于 2016-12-4 14:31:13 | 显示全部楼层
WIN7 64位可以用,我的电脑就是

出0入0汤圆

发表于 2016-12-6 14:29:27 | 显示全部楼层
这个牛逼啊

出0入0汤圆

发表于 2016-12-6 14:30:37 | 显示全部楼层
ST这个还是不错滴

出0入0汤圆

发表于 2019-7-2 14:14:52 | 显示全部楼层
Win10能用不? 我在win7下可以 Win10下一点反应都没有!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 07:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表