历史上的今天
今天是:2024年09月20日(星期五)
2018年09月20日 | stm32usb库bug及解决办法
2018-09-20 来源:eefocus
本人项目开发stm32usb设备的时候,发现usb发送会经常性的阻塞main函数,或者说无法让程序流畅的运行,实时性大打折扣,甚至会卡几十毫秒都很正常,我不明白st为什么会写出这样的usb程序,实属脑残,经过几经周折找到了解决办法:
usb_dcusb_dcd_int.c文件中,函数DCD_WriteEmptyTxFifo有个bug,会导致经常死循环,导致usb库耗时过长。
应该如下修改,在原始程序中增加红框内的语句:

usb的连接并不属于可靠实时性连接,有时会丢包都很正常,修改后usb不再会出现阻塞问题,非常流畅,但要注意增加丢包处理逻辑,来解决usb丢包问题。本人开的的是usbhid设备,附赠上位机三平台源码https://download.csdn.net/download/u012572552/10612090
史海拾趣
|
汽车环境的宽工作电压要求、大瞬变电压以及大温度漂移等因素共同作用下,电子系统面临着严酷的条件,本文介绍如何在性能要求变得愈加苛刻的条件下,设计多个电源电压以满足汽车电子系统不同部分的要求。 ...… 查看全部问答> |
|
功率MOSFET具有导通电阻低、负载电流大的优点,因而非常适合用作开关电源(switch-mode power supplies,SMPS)的整流组件,不过,在选用MOSFET时有一些注意事项。 功率MOSFET和双极型晶体管不同,它的栅极电容比较大,在导通之前要 ...… 查看全部问答> |
|
如题. 做ARM开发,有时候会用到串并口,现在 的笔记本一般都没有,不知道大家有什么建议,我听朋友说,用转接口不太稳定.最好用台式机,不过我还是想换个带串并口的笔记本,大家有什么建议… 查看全部问答> |
|
eboot 分了 4个分区, 1个binfs 3个fatfs 3个fatfs在pc上都是别出来了, 现在遇到以下问题: 1). 我想隐藏其中2个fatfs分区, 因为 我要放 应用程序 用 所以需要隐藏起来 2). 现在分区的路径名是按默认的名字, 比如默认是 disk, 那么 后面几 ...… 查看全部问答> |
|
近期用atmega16 自身的ad测试陀螺仪,在测试的时候发现,当把ADC0接地时 LCD1602显示AD转换后的值为0096,接VCC=AVCC时 显示0993 这不对啊 应该是0和1023啊,这是程序 DDRA&=0xfe; PORTA&=0xfe; SF ...… 查看全部问答> |
|
【课后练习】LaunchPad课后练习九之模拟SPI驱动数码管 LaunchPad课后练习九之模拟SPI驱动数码管 1.采用共阳极的数码管 数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。 什么是共阳极呢?就是他们的公共端接正极。扫描型的意思是,几位的数码管的段选都是 ...… 查看全部问答> |
|
1、寄存器 R13 在 ARM 指令中常用作堆栈指针 2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。采用以下的记号来区分不同的物理寄存器: R13_ 其中,mo ...… 查看全部问答> |




