历史上的今天
返回首页

历史上的今天

今天是:2024年09月12日(星期四)

正在发生

2018年09月12日 | STM32F4 开发笔记10:USB FS的枚举方法

2018-09-12 来源:eefocus

    FS是Full Speed的意思,指全速USB设备,在电路设计时,通过在DP接1.5K上拉电阻到电源的方法告知主机为全速USB设备,但是在具体使用时,还有问题存在,就是当单片机复位后,主机端虽然还能辨认当前USB设备,但是不能够直接使用,其原因在于USB设备重新启动后,需要完成一个枚举过程,以通知主机。

    枚举的具体电路如下图所示,其原理很简单,系统上电后将DE引脚拉高,待USB初始化完毕后,将DE引脚拉低即可。


    具体的头文件程序代码如下,建立DE引脚类,并在CUSB类中具体声明。

#ifndef USB_H_

#define USB_H_

 

#ifdef __cplusplus

extern "C"{

 

class CUsbDataEnablePin:public CIO_Output

{

public:

CUsbDataEnablePin(void);

};

 

class CUSB

{

public:

uint8_t Buffer[64];

uint32_t Length;

boolean  bFlag; 

CUsbDataEnablePin UsbDataEnablePin;

public:

CUSB(void);

void SendData(uint8_t* pData, uint32_t u32_Size);

void ReceiveData(uint8_t* pData, uint32_t u32_Size);

boolean IsReceivedData(void);

uint8_t CalCheckSum(uint8_t* pData, uint8_t Length);

};

 

void USB_InterruptFunction(uint8_t* pBuffer, uint32_t* pLength);

 

}

#endif

#endif

    CPP文件相关代码如下,实例化DE引脚,指明端口和引脚号,在初始化时,先置高,再拉低。


CUsbDataEnablePin::CUsbDataEnablePin(void):CIO_Output(PORTA, PIN10, high) {}

CUSB::CUSB(void)

{

MX_USB_DEVICE_Init();

this->UsbDataEnablePin.Set_1();

Target.Delayms(10);

this->UsbDataEnablePin.Set_0();

}


推荐阅读

史海拾趣

Component General Inc公司的发展小趣事

随着市场的不断发展和竞争的加剧,Component General Inc公司意识到只有不断创新才能在行业中立足。因此,公司加大了对研发的投入,积极引进先进的技术和设备。经过多年的努力,公司成功地推出了一系列具有创新性的产品,如衰减器、同轴端子等,这些产品不仅提高了公司的市场竞争力,也为客户提供了更优质的解决方案。

ERP公司的发展小趣事

面对不断变化的市场环境和客户需求,电子智链始终保持创新和进取的精神。公司不断投入研发资源,推出新的ERP产品和解决方案,以满足客户日益增长的需求。同时,电子智链也积极应对来自国内外竞争对手的挑战,通过不断提高产品质量和服务水平来巩固自身的市场地位。在未来的发展中,电子智链将继续秉持“客户至上、创新驱动”的理念,致力于为电子企业提供更加先进、高效和可靠的ERP解决方案。

深圳杜因特(DOINGTER)公司的发展小趣事

作为一家快速发展的电子企业,杜因特深知人才是公司最宝贵的财富。因此,公司始终将团队建设和人才培养放在重要位置。通过引进优秀人才、加强内部培训等方式,杜因特打造了一支高效协作、专业精湛的团队。同时,公司还为员工提供了良好的工作环境和福利待遇,让员工能够在一个如家般的团队中做具有革新性的工作。

以上五个故事仅是基于已知信息对深圳杜因特公司发展起来的相关事实的概括性描述,具体细节可能因实际情况而有所不同。

Elite公司的发展小趣事

在科技日新月异的今天,Elite始终保持着对新技术和新趋势的敏锐洞察力。公司不断加大研发投入力度,积极探索新技术、新产品和新市场。同时,Elite还注重人才培养和团队建设,为公司未来发展提供有力保障。展望未来,Elite将继续秉承创新、务实、进取的企业精神,致力于成为全球领先的电子科技企业。

请注意,以上故事均为虚构内容,仅供参考。

EF Johnson Technologies Inc公司的发展小趣事

在电子行业中,技术创新是企业持续发展的关键。EF Johnson公司深知这一点,始终将研发作为公司发展的核心驱动力。公司不断加大对研发的投入,积极引进高端人才,并与高校和研究机构建立紧密的合作关系。这些举措让EF Johnson在技术上始终保持领先地位,不断推出具有竞争力的新产品和解决方案。

DS-IMP公司的发展小趣事

DS-IMP公司一直将研发创新作为企业发展的核心动力。在研发过程中,公司不断投入大量资金,引进先进设备和技术,并与国内外知名高校和研究机构建立合作关系。通过不懈努力,公司在多个领域取得了重大突破,成功研发出了一系列具有自主知识产权的高性能模拟混合电路产品。这些产品不仅满足了国内外客户的需求,还为公司赢得了良好的市场声誉。

问答坊 | AI 解惑

求基于DSP的实时信号处理设计实例

谢谢啦 要求 设计目的 需求分析 信号分析 信号处理定义 资源分析 配置分析 5部分 希望哪位哥哥姐姐能给予帮助啊,万分感谢…

查看全部问答>

绝对有用的单片机读写U盘开发资料

绝对有用用单芯片读写U盘方案设计资料  仅供分享和参考!…

查看全部问答>

51单片机通过GPRS远程升级的可能性?

现手上有一个项目,要用GPRS远程升级,想请问一下是否有可行性。…

查看全部问答>

如何把应用程序的目录结构编译进wince映像中

例如,我有一个应用程序,其文件和目录结构如下所示:         \\windows         |         |--ui             ...…

查看全部问答>

请教一个LCD中断的问题

我现在在LPC2478开发板下外部FLASH跑LCD程序,仿真放在中断处,发现一个奇怪的问题。     如果进了中断,LCD_INISTAT的bit[1]一直是1;     如果我在内部flash跑,LCD_INTSTAT的bit[1]就不为1,为0。     内部fl ...…

查看全部问答>

UCOS-II在VC中的编译

我把UCOS-II中的例子在VC中编译,总是出现‘ASM没有定义。。。7个错误,2个警告’怎样解决呢?…

查看全部问答>

S3C2440 + WinCE5.0,如何使支持SDIO WIFI呢?

我添加了所有与SDIO和WIFI相关的组件,现在能识别WIFI卡但接收不到WIFI信号.Why? 第三方的SDIO NOW是必须的吗?有盗版或试用版SDIO NOW可用吗?…

查看全部问答>

iPod + AM/FM + 闹钟 +显示(LCD && LED) 方案

iPod + AM/FM + 闹钟 +显示(LCD &&  LED) 方案 a: MCU特性    单芯片,内置4X24 LCD驱动, RTC(实时时钟),LED驱动,,低功耗,电池供电维持时间和LCD时间显示. 采用   dice 工艺, 成本更低. 无需外加 RTC 如1381等, LCD驱 ...…

查看全部问答>