历史上的今天
今天是:2024年09月12日(星期四)
2018年09月12日 | STM32F4 开发笔记8:解决USB CDC “该设备无法启动”问题
2018-09-12 来源:eefocus
调试STM32的USB CDC设备已经有好多次了,可以看一下前面写的日志,针对不同的STM32 MCU都进行了调试。原本以为STM32F4会很简单,可处处是坑,已经调到半夜才解决问题,把问题重新梳理。
我现在使用的芯片时STM32F401,在STM32CubeMX中,按照以下步骤设置。
1、设置为全速从设备,不做USB电源检测。
2、使能CDC,其它采用默认设置。
按照上述设置生成的程序,下载到芯片后,接入计算机,默认是这样的
仔细查看细节问题是这样的
找了好久不能解决问题,网上有一种说法是,是更改usbd_conf.h文件,如下图所示,将USBD_MAX_NUM_CONFIGURATION设置为2,采用这种方法后,计算机可以正常认出该设备,但不能完成通讯操作。
实在没有方法了,试着调整堆栈数值,偶然解决,我现在调整的数值如下,该数值在startup_stm32f401xc.s文件中。
现在已经可以正常通信了,如下图。
主逻辑代码如下:
int main(void)
{
uint8_t data[10] = {0,1,2,3,4,5,6,7,8,9};
MX_ADC1_Init();
MX_SPI1_Init();
MX_USB_DEVICE_Init();
while (1)
{
if (Target.IsbMilliSecond_1000() == TRUE)
{
//¹¤×÷ָʾµÆ
Target.HAL.LED.Turn();
CDC_Transmit_FS(data, 10);
}
}
}
这种调整方法,难度过大了,STM32CubeMX需改进一下。
史海拾趣
|
学以致用,能用就是好东西,这就是传说中的4BIT单片机. ALPHA 可编程4位单片机 1)、可以播放WAV,AMP,AMW,MID,PM1,音乐格式, 2)、最大有26个IO口 3)、硬件红外发送与接收 4)、PWM,Current,两种方式驱动SPEAK 5)、可设置4M/8M,Rosc时钟 ...… 查看全部问答> |
|
1、全景观察操作与显示的变化: $(\'swf_YS4\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/pl ...… 查看全部问答> |
|
无线数传模块 无线数传模块 液晶模块 一. 功率:20mW - 1W 串行接口 TTL 、232、485可选,波特率1200----115200 电源:DC3.3V--5.5V 距离:500m-5Km ...… 查看全部问答> |
|
Windows ce5.0 device Emulator如何显示中文 我制作了一个Windows ce5.0 device Emulator,可以运行和调试WINCE 应用程序了,可是运行的应用程序只支持英文,不支持中文显示.中文字符全是方框. 求教各位高手了.… 查看全部问答> |
|
求助,单 片 机(Cortex-m3核) 操 作 NAND flash 擦 除 的 问 题 ( 含源代码 ) 我现在用的nand flash是三星的K9K8G08U0A,通过单片机的GPIO口与之连接、进行控制,我想通过单片机直接对flash的全部地址进行擦除操作,但不成功,发现只擦除了一部分,大部分的内容没有被擦除,不知道原因在哪里,请各位帮忙看一下代码,是否有什 ...… 查看全部问答> |
|
#include \"MyKeyHook.h\" /////////////////////////////////////////////////// // IDT structures /////////////////////////////////////////////////// #pragma pack(1) // entry in the IDT, this is sometimes called // an \"int ...… 查看全部问答> |
|
我有几个传感器通过串口连接在一条总线上,通过串口读取数据,几个传感器的地址不同,但是其中有一个传感器读取不了数据,其他的都可以。用串口助手可以看见有数据返回的。 不知道谁可以帮帮忙啊???谢谢啊!!!… 查看全部问答> |
|
使用TC35模块发的短信中有字符$,使用SIM300模块接收到为乱码。 但使用自用诺基亚手机发送同样字符给SIM300,可以正常显示。 是不是TC35和SIM300对一些特殊字符的处理不同导致不能正常显示。… 查看全部问答> |
|
由于项目需要,将几个函数用ARM汇编代码实现,然后在C代码中调用。 [1] 我将DrawFunc.asm加入到工程中: AREA |.text|, CODE, ARM EXPORT Dra ...… 查看全部问答> |




