stm32f407 usb host的vbus可以直接连接到usb的5v吗

21ic官方微信
后使用快捷导航没有帐号?
查看: 1476|回复: 9
F407虚拟串口,PC端5v必须与电路板5v端连接才能通信?
&&已结帖(20)
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
主题帖子积分
专家等级:结帖率:93%打赏:0.00受赏:9.00
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
本帖最后由 玄德 于
13:56 编辑
用F407做虚拟串口,发现个奇怪现象:
必须把PC的5v与电路板的5v电源接通,虚拟串口才能正常工作,否则PC无法识别,更无法通信。
但是,如果挂上jlink仿真器(USB端、SWD端都连接),虚拟串口就可以正常识别、正常通信。
是自己做的板子,F407ZGT6,144脚;
PDR_ON接3.3v,boot0和boot1通过1K电阻接地,IMP809S芯片复位(阈值2.93v)。
jlinkT通过SWD连接,无复位引脚。
目的是实现USB虚拟串口与PCB通信,使用官方库STM32_USB-Host-Device_Lib_V2.1.0。
只用了CPU的DM、DP管脚,ID和vbus管脚有别的用途。
已经关闭VBUS_SENSING_ENABLED宏定义。软件无其他功能。
有事请找 xuander
主题帖子积分
高级工程师, 积分 5027, 距离下一级还需 2973 积分
高级工程师, 积分 5027, 距离下一级还需 2973 积分
主题帖子积分
专家等级:结帖率:94%打赏:1.20受赏:45.79
主题帖子积分
高级工程师, 积分 5027, 距离下一级还需 2973 积分
高级工程师, 积分 5027, 距离下一级还需 2973 积分
应该共地就行了吧。
LZ能不能帮我看看刚刚发表的USB虚拟串口的问题。
嵌入式linux博客:.cn/feilusia522
ble、android博客:http://blog.csdn.net/feilusia
香瓜BLE之CC254x讨论群:
主题帖子积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
资深工程师, 积分 11272, 距离下一级还需 8728 积分
LZ的情况应该是假象。如2L所说,共地就行了。
主题帖子积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
QQ:& &可接项目和毕设等
& && && && && && &可以出售各种LED灯,控制类产品和
& && && && && && &控制类方案。
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
主题帖子积分
专家等级:结帖率:93%打赏:0.00受赏:9.00
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
本帖最后由 玄德 于
13:48 编辑
上午尝试用上 DCD_DevDisconnect 和 DCD_DevConnect 函数,情况照旧,还是必须把PC的5v与板子5v连接上,才能通信。
确实没有道理,但确实是这个情况。
目前暂时在电脑5v和板子5v之间串联了一个100欧电阻,可以通信,又不影响板子工作。
但板子一直带电,不是长久之计。
有事请找 xuander
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
主题帖子积分
专家等级:结帖率:93%打赏:0.00受赏:9.00
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
求高手看一看。
有事请找 xuander
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
主题帖子积分
专家等级:结帖率:93%打赏:0.00受赏:9.00
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
重新描述一下现象吧:
STM32F407,用官方库 STM32_USB-Host-Device_Lib_V2.1.0 \ USB_Device_Examples \ VCP 项目为模板,做虚拟串口。
只连接DM、DP、GND三根线,关闭 VBUS_SENSING_ENABLED 宏定义,PC端用官方驱动。
如果把USB端口的5v线与目标板5v连接(或串联一个100欧姆电阻),则一切正常:识别正常,目标板与PC通信也正常。
如果断开,则PC端能正常识别,但无法通信。试验了三个串口调试软件都不行,或者找不到串口,或者打开时出错。
有事请找 xuander
主题帖子积分
中级工程师, 积分 3239, 距离下一级还需 1761 积分
中级工程师, 积分 3239, 距离下一级还需 1761 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
中级工程师, 积分 3239, 距离下一级还需 1761 积分
中级工程师, 积分 3239, 距离下一级还需 1761 积分
帮你顶一个& &这现象没有遇到过&&楼主
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
主题帖子积分
专家等级:结帖率:93%打赏:0.00受赏:9.00
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
解决了,我用了根劣质的USB延长线。。。。。
有事请找 xuander
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
主题帖子积分
专家等级:结帖率:93%打赏:0.00受赏:9.00
主题帖子积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
资深工程师, 积分 13146, 距离下一级还需 6854 积分
看来是地线方面的问题。
有事请找 xuander
技术高手奖章
人才类勋章
晶莹之水滴
发帖类勋章
技术奇才奖章
人才类勋章
时间类勋章
湍急之河流
发帖类勋章
突出贡献奖章
等级类勋章
技术领袖奖章
人才类勋章
核心会员奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术新星奖章
人才类勋章
欢快之小溪
发帖类勋章
精华达人奖章
等级类勋章
时间类勋章DM-STF4BB 扩展板
-基于STM32F4DISCOVERY的扩展模块
如果您拥有ST官方STM32F4DISCOVERY开发板
STM32F4DISCOVERY 开发板
STM32F407VGT6微控制器,32位ARM Cortex-M4F核
1024KB FLASH,192 KB RAM
100引脚,LQFP封装
集成ST-Link/V2的仿真调试器(但仅对外提供SWD接口)
电源(通过USB取电5V,可对外供电5V和3V)
LD1:USB通讯指示灯
LD2:3.3V电源指示灯
LD3,LD4,LD5,LD6:应用指示灯
LD7:USB OTG LED(VBus)
LD8:USB OTG LED(over-current)
2*按键(复位按钮和应用按钮)
USB OTG FS, micro-AB连接器
LIS302DL, ST MEMS motion sensor, 3-axis digital output accelerometer
MP45DT02, ST MEMS audio sensor, omni-directional digital microphone
MP45DT02, ST MEMS audio sensor, omni-directional digital microphone
如果您想评估 STM32F4DISCOVERY 开发板或 STM32F407VGT6 ST Cortex-M4 芯片更多功能:
DM-STF4BB扩展板助您实现设计:
DM-F4BB 扩展模块
- 基于ST原厂STM32F4DISCOVERY推出的高性能扩展板- 支持3.5寸工业级LCD触摸屏,130万像素OV9655 Camera模块- 多达6路串口,CAN,IIC,SPI,以太网口,USB2.0 FS OTG/device/host,TF卡等- 支持uC/OS-Ⅱ_v2.86 & uC/GUI_v3.90a,并提供BSP源码(如用于商业,需申请授权)- 支持FatFs_vR0.08a 文件系统(用于SD卡的文件系统)- 支持LwIP_v1.3.2协议栈
Devkit407 开发套件 / ARM Cortex-M4开发套件
Discover-MO:)是英蓓特科技最新推出的产品品牌,主要集中于提供功能扩展模块,帮助客户在原厂板上发现更多的功能,减少客户评估和研发产品时间,协助客户进行二次开发。目前Discover-MO:)产品线有DM-STF4BB扩展模块、DM-CAM130数字摄像头模块、DM-LCD35RT 3.5寸工业级电阻式触摸屏模块。DM-STF4BB是深圳市英蓓特科技有限公司推出的一款基于STM32F4DISCOVERY的扩展板,基于ARM 32-bit Cortex-M4的STM32F407VGT6处理器,最高运行频率为168MHz,外设Micro SD卡存储。该扩展板多达6路串口,另有以太网口、CAN、IIC、SPI、USB2.0 FS OTG/device/host、TF卡等丰富的外设接口;支持Camera模块输出、3.5寸工业级LCD 触摸屏。提供丰富的软件资源,支持uC/OS-Ⅱ操作系统及提供完善BSP源码包。DM-STF4BB联合STM32F4DISCOVERY一起组成Embest的Devkit407评估板。Devkit407评估套件的推出,完善了STM32F4DISCOVERY的功能,进一步拓展了主芯片的功能,可以帮助客户体验更多的外设功能。Devkit407板载ST-LINK/V2调试器,省去了外部调试器,采用USB供电,省去了外部适配器。所以Devkit407是Embest推出的一款面对广大ST电子爱好者的低成本开发套件,物美价廉,功能强大。STM32F4DISCOVERY是ST公司Discovery Kit系列中的基于STM32F4xx系列芯片推出的评估套件,其主控芯片为:STM32F407VGT6。具体信息详见:
产品构成及结构框图
Devkit407 = STM32F4DISCOVERY + DM-STF4BB
STM32F407VGT6,ARM 32-bit Cortex-M4 core,最高运行频率为168MHz
内部集成1 MB Flash memory,192+4 KB SRAM
外扩Micro SD卡存储
传输接口:
UART6:3线串口,RS232电平,DB9公头引出(与Camera复用,通过JP1&JP2选择)
1路CAN2.0B接口(需外扩CAN收发器)
以太网接口(10/100Mbps)
1&USB2.0 FS OTG/device/host,12Mbps.Micro-AB型接口
输入输出接口:
调试接口:板载ST-LINK/V2 调试接口
运动传感:板载LIS302DL运动传感器Sensor
Camera接口:支持130W的DM-CAM130摄像头模块
音频接口:
一路立体声音频Mini-Jack输出接口
板载MP45DT02数字麦克风MEMS Sensor
液晶触摸屏接口:
支持3.5寸(320*240)TFT LCD
支持4线电阻触摸
16bit 8080并行接口
背光亮度可调
扩展接口:
6路串口(包含复用)
1路4通道PWM接口
1路SPI接口
1路IIC接口
标准5V USB电源
电气特性:
工作温度 : 0 ℃ ~ 40 ℃
存储温度 : 0 ℃ ~ 40 ℃
电气指标 : (不带LCD)
符合CE,RoHS指令
系统特性:
支持uC/OS-II_v2.86操作系统
支持uC/GUI_v3.90a
支持FatFs_vR0.08a 文件系统
支持LWIP_v1.3.2网络协议栈
开发环境支持:
IAR EWARM:
所有的驱动程序均支持IAR EWARM,EWARM版本要求V6.40或以上版本。uC/OS-II & uC/GUI Demo暂不支持IAR EWRAM
Keil MDK-ARM:
所有的驱动程序以及应用层程序均支持Keil MDK-ARM,MDK-ARM版本要求V4.22a或以上版本
调试工具支持:
ULINK2(建议配合Keil MDK-ARM使用,调试效果最佳)
JLINK-V8(建议配合IAR EWARM使用,调试效果最佳)
ST-LINK/V2(以上两者均适合)
驱动程序&应用例程:(下载DevKit407评估套件概述,可了解更多)
DevKit407配套模块
电机控制、工业控制
智能仪器仪表
家庭/楼宇自动化
数据采集分析
注:如果需要将资料下载到本地,请右击链接,选择&另存为&即可。
DM-STF4BB扩展板 399元
1)DM-STF4BB 底板 *12)CD光盘 *1(使用文档,代码及工具)
DevKit407评估套件& 529元
1)STM32F4DISCOVERY *12)DM-STF4BB 底板 *13)CD光盘 *1(使用文档,代码及工具)
1)3.5寸LCD屏(DM-LCD35RT,分辨率为320*240)+& DevKit407评估套件= 749元 2)摄像头模块(,130W分辨率摄像头)+3.5寸LCD屏(DM-LCD35RT,分辨率为320*240)+ DevKit407评估套件= 899元
<div class="section pdtdetail" tab="购买咨询(0)"> 购买咨询
如果您对本商品有什么问题,请直接到
咨询在线客服! 最近更新和最新价格也请到
<div class="section pdtdetail" tab="商品评论 (0)"> 商品评论
如果您对本商品有什么评价或经验,欢迎分享!
博航价:¥99999.00
博航价:¥50000.00
博航价:¥1680.00
博航价:¥670.00
博航价:¥2580.00
博航价:¥1250.00
博航价:¥40.00
博航价:¥49900.10
博航价:¥280.00
博航价:¥13800.00
博航价:¥838.00
博航价:¥2500.00
博航价:¥1680.00
博航价:¥16000.00
博航价:¥600.00STM32F4全速USB虚拟串口VCP程序裁剪教程_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
STM32F4全速USB虚拟串口VCP程序裁剪教程
上传于||文档简介
&&S&#8203;T&#8203;M&#03;2&#8203;F&#03;全&#8203;速&#8203;U&#8203;S&#8203;B&#8203;虚&#8203;拟&#8203;串&#8203;口&#8203;V&#8203;C&#8203;P&#8203;程&#8203;序&#8203;裁&#8203;剪&#8203;教&#8203;程
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩21页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢STM32F4DISCOVERY Discovery kit for STM32 F4 series - with STM32F407 MCU_BDTIC 代理STM32F4DISCOVERY
STM32F4DISCOVERY Discovery kit for STM32 F4 series - with STM32F407 MCU
STM32F4DISCOVERY能够帮助您揭示STM32F4的高性能特性和轻松开发您的应用。
它包含初学者和经验丰富的用户迅速开始设计所需的一切。
基于STM32F407VGT6,套件带有1个ST-LINK/V2嵌入式调试工具、2个ST
MEMS、数字加速器和数字麦克风、1个带有集成式D类扬声器驱动器的音频DAC、LED和按钮与1个USB OTG micro-AB连接器。
ST网站(/stm32f4-discovery)上提供了大量免费的应用固件实例,可以为您迅速评估和开发应用提供技术支持。
在LQFP100封装内集成了32位ARM Cortex-M4F内核、1M字节Flash和192K字节RAM的STM32F407VGT6微控制器
带有选择模式开关的板上ST-LINK/V2,可以将套件用作独立ST-LINK/V2(带有用于编程与调试的SWD连接器)
板上供电:通过USB总线或者外部5V电源提供
外部应用供电:3V和5V
LIS302DL、ST MEMS运动传感器、具有数字输出3轴加速器
MP45DT02、ST MEMS音频传感器、全向数字麦克风
CS43L22、带有集成式D类扬声器驱动器的DAC
LD1 (red/green) for USB communication
LD2 (red) for 3.3 V power on
Four user LEDs, LD3 (orange), LD4 (green), LD5 (red) and LD6
2 USB OTG LEDs LD7 (green) VBus and LD8 (red) over-current
2个按钮(用户和复位按钮)
带有micro-AB连接器的全速USB OTG
连接所有LQFP100 I/O的扩展插针,可以快速连接原型板,轻松完成测试任务
STM32F4DISCOVERY 订购信息
STM32F4DISCOVERY
STM32F4DISCOVERY
DATA BRIEF
: DB1421: STM32F4 high-performance discovery board
APPLICATION NOTES
: PDM audio software decoding on STM32 microcontrollers
: Audio playback and recording using the STM32F4DISCOVERY
: STM32 secure firmware upgrade (SFU) overview
: STM32F4DISCOVERY peripheral firmware examples
: Upgrading STM32F4DISCOVERY board firmware using a USB key
: Using the hardware real-time clock (RTC) in STM32 F0, F2, F4 and L1
series of MCUs
USER MANUALS
: STM32F4DISCOVERY STM32F4 high-performance discovery board
: STM32F103xx/ STM32F100xx/STM32F2xx/STM32F4xx PMSM single/dual FOC SDK
: Getting started with software and firmware environments for the
STM32F4DISCOVERY Kit
STM32F4DISCOVERY board firmware package, including 22 examples (covering USB
Host, audio, MEMS accelerometer and microphone…) and preconfigured projects for
4 different IDEs
QQ: ;TradeManager
深圳电话:136
西安电话:130
&1993 - 2016 & BDTIC 版权所有你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
今天终于调通了,虽然只是PC电脑上接收到了数据.......(发送的还没研究)
先弄上来让大家知道怎么配置和大体程序的流程(我也没多研究).....
至于配置,我先前一个帖子已经贴图了....
这里再写一次
Pinout界面中修改:
开启USB_OTG_FS模式下的Device_Only,其他不选
middleWare里面的USB_DEVICE中的Class For FS IP选择Communication Device Class (Virtual Port Com)
时钟配置界面:8M外部晶振,设置系统168M,Apb1分频4,APB2分频2
Configuration界面中:
GPIO设置PD12,13,14,15输出上拉,中速
usb的GPIO的DM和DP均为AF,DM无上啦,DP上拉,高速模式(High)
开启中断优先组GRoup4
NVIC中断开启usb on the Go FS Global interrupt 中断1,0
USB_FS configuration 设置 speed为Full , ENDpoint 0 max packet size为64bytes
低功耗不使能, vbus不使能.....
usb_device configuration中的Parameter setting设置
ok,生成代码
晚上回去测试接收然后原数据返回.....................
占楼广告.....................
发现生成的代码里面有几个问题:
usbd_cdc_if.c文件里面的最后一个函数
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
uint8_t result = USBD_OK;
/[i] USER CODE BEGIN 8 [/i]/
USBD_CDC_SetTxBuffer(hUsbDevice_0, [b]Buf[/b], Len);
result = USBD_CDC_TransmitPacket(hUsbDevice_0);
/[i] USER CODE END 8 [/i]/
应该改成上面的,这个应该是整合了下发送函数,毕竟每次发送都要用到.但是他原来里面粗体部分用的是UserTxBufferFS[],这就说不通了......导致变量Puf木有屁用了...
然后以后的main.c中的main就可以直接调用这个函数了,
额,调用前,先声明下
extern uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len);
测试的话,随便定义一个uint8_t datausb = {0x77,0x88,0x99,0x11,0x22,0x33,0x55};
发送用 CDC_Transmit_FS((uint8_t *)&datausb ,7);
在DP脚添加了一个上拉电阻后终于可以枚举 stm32f302r8t6 VCP了。第一步 check。
GPIO方面的配置图
生成之后,我用的事keil 编译的, 要去修改启动文件里面一个代码
打开工程的启动文件 startup_stm32f407xx.s
将里面的 Heap_Size EQU 0x
改成 Heap_Size EQU 0x
或者改成Heap_Size EQU 0x
其中1500是官方那个演示程序的设置.
再次打开main.c文件
添加头文件
#include &usbd_cdc.h&
算了直接上main.c里面的全部代码,其他的文件都不用修改
/[i] Includes ------------------------------------------------------------------[/i]/
#include &stm32f4xx_hal.h&
#include &usb_device.h&
#include &gpio.h&
/[i] USER CODE BEGIN Includes [/i]/
#include &usbd_cdc.h&
/[i] USER CODE END Includes [/i]/
/[i] Private variables ---------------------------------------------------------[/i]/
/[i] USER CODE BEGIN PV [/i]/
/[i] USER CODE END PV [/i]/
/[i] Private function prototypes -----------------------------------------------[/i]/
void SystemClock_Config(void);
/[i] USER CODE BEGIN PFP [/i]/
/[i] USER CODE END PFP [/i]/
/[i] USER CODE BEGIN 0 [/i]/
/[i] USER CODE END 0 [/i]/
int main(void)
/[i] USER CODE BEGIN 1 [/i]/
uint8_t UserTxBuffer55 = 0x55;
/[i] USER CODE END 1 [/i]/
/[i] MCU Configuration----------------------------------------------------------[/i]/
/[i] Reset of all peripherals, Initializes the Flash interface and the Systick. [/i]/
HAL_Init();
/[i] Configure the system clock [/i]/
SystemClock_Config();
/[i] Initialize all configured peripherals [/i]/
MX_GPIO_Init();
MX_USB_DEVICE_Init();
/[i] USER CODE BEGIN 2 [/i]/
/[i] USER CODE END 2 [/i]/
/[i] USER CODE BEGIN 3 [/i]/
/[i] Infinite loop [/i]/
if(mmss&=500)
HAL_GPIO_TogglePin (GPIOD,GPIO_PIN_12);
USBD_CDC_SetTxBuffer(&hUsbDeviceFS, (uint8_t*)&UserTxBuffer55, 1);
USBD_CDC_TransmitPacket(&hUsbDeviceFS);
/[i] USER CODE END 3 [/i]/
/** System Clock Configuration
void SystemClock_Config(void)
RCC_OscInitTypeDef RCC_OscInitS
RCC_ClkInitTypeDef RCC_ClkInitS
__PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1
|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5);
/[i] USER CODE BEGIN 4 [/i]/
void HAL_SYSTICK_Callback(void)
/* NOTE : This function Should not be modified, when the callback is needed,
the HAL_SYSTICK_Callback could be implemented in the user file
/[i] USER CODE END 4 [/i]/
#ifdef USE_FULL_ASSERT
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
void assert_failed(uint8_t* file, uint32_t line)
/[i] USER CODE BEGIN 6 [/i]/
/* User can add his own implementation to report the file name and line number,
ex: printf(&Wrong parameters value: file %s on line %d\r\n&, file, line) */
/[i] USER CODE END 6 [/i]/
好了,编译烧录,打开串口调试助手
**注意啊,串口调试助手里面,只需要选择相应的串口就可以了......其他的什么波特率啊,位数啊,都没用的..........
咱是usb虚拟的,没定义这个....不信你可以自己试试**
期待楼猪速更...................
下面测试接收数据.要添加个东西...
打开usbd_cdc_if.c文件里面的倒数第二个函数
static int8_t CDC_Receive_FS (uint8_t[i] Buf, uint32_t [/i]Len)
/[i] USER CODE BEGIN 7 [/i]/
USBD_CDC_SetRxBuffer(&hUsbDeviceFS, (uint8_t *)&UserRxBufferFS);
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
return (USBD_OK);
/[i] USER CODE END 7 [/i]/
不改的话,接收一次数据可以,第二次串口调试助手就会死机..............
我main函数中这样写
if(addtime &=500)
addtime = 0;
HAL_GPIO_TogglePin (GPIOD,GPIO_PIN_12);
UsbSendData (&datausb ,1);
CDC_Transmit_FS(UserRxBufferFS ,7);
每次500ms发送一次接收到的数据回去....
我每次发送接收到的头7个数据...
图中,我发送16进制数 55
44 两个字节......
返回的是16进制数
55 44 C1 2C 60 18 7C 七个字节.....
这是我随便发送后,再次发送55 44两个字节的结果...
数据没清零.......说明程序还是有问题.........
明天再改改
多次试验发现,有时候上电我设置的系统正常情况下必闪的led没闪烁,不知道什么原因,这样貌似是系统死在了哪里......导致usb也发送不到数据和接收....
还有就是如上面代码的写法,加入接收5个或者更少的数据,但是发送大于此数量那么接收还是正确的5数,但是紧接着就是两个错误的数据.....难道是CRC校验?但是我没开啊,而且也貌似也不是校验啊........
难道用虚拟串口必须用特征码筛选有用信息?
谁遇到过这种问题
驱动包里有例子,生成的还不能直接用
这么说可以直接USB下载程序了?
可以把接收的代码贴上来吗?楼主
时钟配置一直不对啊
怎么没有下文了?
最后的main()函数的最后一行CDC_Transmit_FS(UserRxBufferFS,7)是不是写错啦,函数是Transmit,参数却是RxBuffer,应该是CDC_Receive_FS(UserRxBufferFS,7)吧
不知道楼主有没有试过F10X、F30X系列的芯片测试。按照教程测试了429,PC可以发现虚拟串口,可是用了个302的开发板(stm32f302r8t6),USB的配置就缩水了,插上后一点反应都没。难道还得手动上拉DP? 部分配置如下图 缺少: NVIC中断开启usb on the Go FS Global interrupt 中断1.0 ;vbus 设置。
我的开发板是STM3240G-EVAL,用CUBEMX设置了很多次,电脑上始终有个黄色感叹号,不能正常使用,用demo程序就没有问题
要回复问题请先或
浏览: 11542
关注: 27 人}

我要回帖

更多关于 stm32 usb vbus 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信