历史上的今天
返回首页

历史上的今天

今天是: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需改进一下。


推荐阅读

史海拾趣

Hitano Enterprise Corp公司的发展小趣事

机顶盒,全称为数字视频变换盒,是现代家庭娱乐不可或缺的重要设备之一。它作为连接电视与外部信号源的桥梁,不仅实现了传统模拟电视向数字电视的跨越,还极大地丰富了电视节目的选择和观看体验。

从专业角度来看,机顶盒的主要功能是接收数字电视信号,并将其转换成适合在电视机上播放的格式。无论是来自有线电缆、卫星天线、宽带网络还是地面广播的信号,机顶盒都能有效接收并解码,从而呈现出高清甚至超高清的画质和震撼的音效。此外,机顶盒还具备网络交互功能,用户可以通过它连接到互联网,享受在线购物、观看网络视频、玩游戏等多元化服务。

从科普层面讲,机顶盒的出现极大地改变了人们的电视观看方式。它不再局限于单向接收信息,而是成为了一个能够与用户进行互动的智能终端。通过机顶盒,观众可以自由选择观看的节目,甚至参与到节目的互动中,极大地提升了观看的参与感和乐趣。同时,机顶盒还提供了丰富的增值服务,如电子节目指南、因特网网页浏览等,进一步满足了用户的多样化需求。

综上所述,机顶盒以其强大的功能和广泛的应用场景,成为了现代家庭娱乐的重要组成部分。随着技术的不断进步和消费者需求的日益多样化,机顶盒的功能和应用场景也将不断扩展和丰富。

Ford Aerospace & Communications Corp公司的发展小趣事

进入20世纪50年代,随着太空技术的兴起,福特汽车公司开始关注卫星通信的潜力。虽然福特并未直接参与卫星的发射或制造,但它通过资助相关科研机构和大学的研究项目,间接推动了卫星通信技术的发展。这些研究为后来的全球卫星通信系统提供了重要的理论基础和技术支持。

冠西电子(COSMO)公司的发展小趣事

近年来,冠西电子积极布局全球市场,设立了多个分公司和办事处,以便更好地服务全球客户。同时,冠西电子还不断关注新兴技术和市场需求的变化,积极寻求新的发展机遇。展望未来,冠西电子将继续秉承“专业、创新、品质、服务”的理念,不断推动公司业务的发展和进步。

以上五个故事概要涵盖了冠西电子(COSMO)公司从创立到发展的主要阶段和事实。每个阶段都体现了冠西电子在技术、市场、品质、品牌等方面的努力和成就。

ATO SOLUTION公司的发展小趣事

随着全球环保意识的日益增强,ATO SOLUTION公司积极响应绿色环保号召,将环保理念融入企业发展和产品生产中。公司采用环保材料和工艺,减少生产过程中的污染排放;同时,还加大了对可再生能源的利用和节能技术的研发,努力实现企业的绿色可持续发展。这种环保实践不仅提升了公司的社会形象,也为公司的长期发展注入了新的动力。


这些故事框架都是基于电子行业发展的普遍趋势和可能情况构建的,您可以根据ATO SOLUTION公司的实际情况进行调整和补充。在撰写具体故事时,请确保内容的真实性和客观性,避免加入主观评价或猜测。

CONEC公司的发展小趣事

为了进一步提升公司的竞争力和市场影响力,CONEC开始了国际化布局。1990年,康耐加拿大公司的成立,标志着公司迈出了国际化的重要一步。随后,CONEC在德国、捷克共和国、美国和波兰等地设立分公司或生产基地,形成了全球性的生产和销售网络。同时,公司还积极寻求与全球领先的电子企业和技术机构的战略合作,共同推动电子行业的发展。

Dynex公司的发展小趣事

1978年,CONEC在利普施塔特创立,标志着公司电子业务的起点。创立初期,公司可能面临着资金、技术和市场等多方面的挑战。然而,凭借着对电子行业的深刻理解和坚定的创业决心,CONEC逐渐在市场中站稳脚跟。1980年,DIN EN 60603系列产品的成功上线生产,为公司赢得了初步的声誉和市场认可,为后续的发展奠定了坚实基础。

问答坊 | AI 解惑

少为人用的4BIT单片机

学以致用,能用就是好东西,这就是传说中的4BIT单片机. ALPHA 可编程4位单片机 1)、可以播放WAV,AMP,AMW,MID,PM1,音乐格式, 2)、最大有26个IO口 3)、硬件红外发送与接收 4)、PWM,Current,两种方式驱动SPEAK 5)、可设置4M/8M,Rosc时钟 ...…

查看全部问答>

【EEWORLD带你DIY】数字示波器V1.0版—功能演示

1、全景观察操作与显示的变化: $(\'swf_YS4\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/pl ...…

查看全部问答>

恒压源和恒流源

恒压源:      日常生活中恒压源是多见的,蓄电池、干电池是直流恒压电源,而 220V 交流电,则可认为是一种交流恒压电源,因为它们的输出电压是基本不变的,是不随输出电流的大小而大幅变化的。      恒 ...…

查看全部问答>

无线数传模块--全透明串口TTL、232、485电平

无线数传模块 无线数传模块   液晶模块 一. 功率: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的全部地址进行擦除操作,但不成功,发现只擦除了一部分,大部分的内容没有被擦除,不知道原因在哪里,请各位帮忙看一下代码,是否有什 ...…

查看全部问答>

idt hook在有其它线程运行的时候,出现蓝屏,为什么?

#include \"MyKeyHook.h\" /////////////////////////////////////////////////// // IDT structures /////////////////////////////////////////////////// #pragma pack(1) // entry in the IDT, this is sometimes called // an \"int ...…

查看全部问答>

嵌入式linux读 串口数据的问题!

    我有几个传感器通过串口连接在一条总线上,通过串口读取数据,几个传感器的地址不同,但是其中有一个传感器读取不了数据,其他的都可以。用串口助手可以看见有数据返回的。    不知道谁可以帮帮忙啊???谢谢啊!!!…

查看全部问答>

SIM300和TC35对短信中的特殊符号的处理是否不同

使用TC35模块发的短信中有字符$,使用SIM300模块接收到为乱码。 但使用自用诺基亚手机发送同样字符给SIM300,可以正常显示。 是不是TC35和SIM300对一些特殊字符的处理不同导致不能正常显示。…

查看全部问答>

eVC中如何调用汇编代码实现的函数

由于项目需要,将几个函数用ARM汇编代码实现,然后在C代码中调用。   [1] 我将DrawFunc.asm加入到工程中:         AREA        |.text|, CODE, ARM         EXPORT Dra ...…

查看全部问答>