接下去要分别分析下这几个文件:
hw_config.c:
这个文件主要是配置一些跟板载及系统相关的代码,比如说USB系统时钟配置,上拉电阻引脚及LED灯配置,还有USB的中断灯。主要的函数如下:
void Set_System(void); /*设置系统时钟,USB 及LED引脚配置*/
void Set_USBClock(void); /*设置USB的时钟频率*/
void GPIO_AINConfig(void); /*设置GPIO模拟输入(这里是空函数)*/
void Enter_LowPowerMode(void); /*进入低功耗模式(这里是空函数)*/
void Leave_LowPowerMode(void); /*离开低功耗模式(这里是空函数)*/
void USB_Interrupts_Config(void); /*设置USB中断配置*/
void USB_Cable_Config (FunctionalState NewState);/*USB连接断开选择,其实是控制上拉电阻引脚*/
/*void Joystick_Send(uint8_t Keys);*/ /*操作杆发送(没有用)*/
/*uint8_t JoyState(void); */ /*操作杆状态(没有用到)*/
void Get_SerialNum(void); /*创建字符串描述符的序列号*/
usb_des.c:
这个文件主要是定义了USB的一些描述符:分别是:设备描述符、配置描述符集合(包括接口描述符,HID描述符,端点描述符)、HID报告描述符、语言ID描述符、厂家的字符串描述符、产品的字符串描述符、产品序列号的字符串描述符。
CustomHID_DeviceDescriptor[CUSTOMHID_SIZ_DEVICE_DESC];
CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC];
CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC];
CustomHID_StringLangID[CUSTOMHID_SIZ_STRING_LANGID];
CustomHID_StringVendor[CUSTOMHID_SIZ_STRING_VENDOR];
CustomHID_StringProduct[CUSTOMHID_SIZ_STRING_PRODUCT];
CustomHID_StringSerial[CUSTOMHID_SIZ_STRING_SERIAL];
usb_endp.c:
这个文件主要是定义了几个端点输入输出的回调函数,这里指定以了端点1输入输出回调及端点2输入回调函数,如下:
void EP1_IN_Callback(void); /*端点1输入回调函数*/
void EP1_OUT_Callback(void); /*端点1输出回调函数*/
void EP2_IN_Callback(void); /*端点2输入回调函数*/
usb_Istr.c:
这个文件主要是每个端点对应的回调函数的注册;USB中断服务程序的处理,通过读取STM32 ISTR中断状态寄存器来判断是什么中断,并做相应的专断处理。
void (*pEpInt_IN[7])(void) = /*端点输入回调函数注册*/
{
EP1_IN_Callback,
EP2_IN_Callback,
EP3_IN_Callback,
EP4_IN_Callback,
EP5_IN_Callback,
EP6_IN_Callback,
EP7_IN_Callback,
};
void (*pEpInt_OUT[7])(void) = /*端点输出回调函数的注册*/
{
EP1_OUT_Callback,
EP2_OUT_Callback,
EP3_OUT_Callback,
EP4_OUT_Callback,
EP5_OUT_Callback,
EP6_OUT_Callback,
EP7_OUT_Callback,
};
void USB_Istr(void);/*ISTR事件中断服务程序*/
usb_propc:
这个文件主要是把之前定义的一些列描述符注册到USB库中,并且注册一些USB常用的处理函数如获取设备描述符等和一些标准请求函数,具体如下:
DEVICE_PROP Device_Property = /*注册一些CustomHID函数*/
{
CustomHID_init, /*CustomHID的初始化函数*/
CustomHID_Reset, /*CustomHID的复位函数*/
CustomHID_Status_In, /*CustomHID状态输入函数*/
CustomHID_Status_Out, /*CustomHID状态输出函数*/
CustomHID_Data_Setup, /*CustomHID的处理带数据的特殊类请求函数*/
CustomHID_NoData_Setup, /*CustomHID的处理不带数据特殊类请求函数*/
CustomHID_Get_Interface_Setting, /*CustomHID获取接口及备用接口设置是否可用 */
CustomHID_GetDeviceDescriptor, /*CustomHID获取设备描述符*/
CustomHID_GetConfigDescriptor, /*CustomHID获取配置描述符*/
CustomHID_GetStringDescriptor, /*CustomHID获取字符串描述符*/
0, /*当前库未使用*/
0x40 /*MAX PACKET SIZE*/ /*最大的包长度为64字节*/
};
/*注册USB标准请求的实现函数*/
USER_STANDARD_REQUESTS User_Standard_Requests =
{
CustomHID_GetConfiguration, /*获取配置请求*/
CustomHID_SetConfiguration, /*设置配置请求*/
CustomHID_GetInterface, /*获取接口请求*/
CustomHID_SetInterface, /*设置接口请求*/
CustomHID_GetStatus, /*获取状态请求*/
CustomHID_ClearFeature, /*清除特性请求*/
CustomHID_SetEndPointFeature, /*设置端点特性请求*/
CustomHID_SetDeviceFeature, /*设置设备特性请求*/
CustomHID_SetDeviceAddress /*设置设备地址请求*/
};
/*注册设备描述符信息*/
ONE_DESCRIPTOR Device_Descriptor;
/*注册报告描述符信息*/
ONE_DESCRIPTOR CustomHID_Report_Descriptor;
/*注册HID描述符信息*/
ONE_DESCRIPTOR CustomHID_Descriptor;
/*注册字符串描述符,包括语言ID、厂商、产品、序列号描述符*/
ONE_DESCRIPTOR String_Descriptor[4];
usb_pwr.c:
这个文件主要一些USB与功耗方面的函数,如上电、掉电、挂起等。
void Suspend(void); /*挂起*/
void Resume_Init(void); /*恢复初始化*/
void Resume(RESUME_STATE eResumeSetVal);/*恢复到某个状态状态*/
RESULT PowerOn(void); /*上电*/
RESULT PowerOff(void); /*掉电*/
上一篇:STM32学习笔记之USB虚拟串口描述符简介
下一篇:LPC54608生成PDF文件
推荐阅读
史海拾趣
在电子行业中,台湾双羽公司凭借其卓越的技术实力与不懈的创新精神,逐步发展成为行业内的佼佼者。以下是五个关于台湾双羽公司发展起来的相关故事,每个故事均基于事实描述,且字数达到要求。
1. 技术合作的起点
故事概述:台湾双羽公司的发展历程可以追溯到1973年,这一年,公司与日本福岛双羽电机公司建立了技术合作关系。这一合作不仅为双羽带来了先进的电阻器制造技术,还为其后续的产品开发和品质提升奠定了坚实基础。通过引进日本的高品质电阻器生产工艺和管理经验,双羽迅速在电阻器市场上站稳了脚跟,并逐渐发展成为业界的佼佼者。
细节补充:在技术合作的初期,双羽公司派遣了多名技术人员前往日本学习,他们不仅掌握了电阻器的核心制造技术,还带回了严谨的生产流程和质量控制标准。这些宝贵的经验和技术积累,为双羽公司后续的创新发展提供了有力支持。
2. 多元化产品线的拓展
故事概述:随着技术的不断积累和市场的逐步扩大,台湾双羽公司开始积极拓展多元化产品线。公司不仅继续深耕电阻器领域,还逐步涉足电容器、电感器等电子元器件的研发和生产。通过多元化产品线的拓展,双羽公司进一步巩固了其在电子行业的地位,并为客户提供了一站式电子元器件解决方案。
细节补充:在多元化产品线的拓展过程中,双羽公司始终坚持技术创新和品质至上的原则。公司不断投入研发资金,引进先进生产设备和技术人才,确保每一款产品的性能和质量都能达到行业领先水平。同时,双羽公司还建立了完善的质量管理体系和售后服务体系,为客户提供全方位的支持和服务。
3. 全球化布局的实现
故事概述:为了更好地服务全球客户并拓展国际市场,台湾双羽公司开始实施全球化布局战略。公司先后在苏州、深圳等地设立生产基地和销售中心,并逐步将产品和服务推向海外市场。通过全球化布局的实现,双羽公司的品牌影响力和市场份额得到了显著提升。
细节补充:在全球化布局的过程中,双羽公司充分考虑了不同地区的市场需求和文化差异。公司针对不同地区的客户需求制定了个性化的产品方案和服务策略,并加强与当地经销商和合作伙伴的合作与交流。这些措施不仅提升了双羽公司的市场竞争力,还为其在全球范围内的快速发展奠定了坚实基础。
4. 创新驱动的发展模式
故事概述:台湾双羽公司始终将创新作为企业发展的核心驱动力。公司不断投入研发资源和技术力量,推动新产品、新技术和新工艺的研发与应用。通过创新驱动的发展模式,双羽公司在电阻器及其他电子元器件领域取得了多项重大技术突破和专利成果。
细节补充:在创新驱动的发展模式下,双羽公司建立了完善的创新体系和激励机制。公司鼓励员工积极参与创新活动并提出合理化建议和意见;同时与高校、科研机构等外部合作伙伴建立紧密的合作关系;共同开展技术研发和人才培养工作。这些措施不仅激发了员工的创新热情和工作积极性;还为公司带来了源源不断的创新动力和发展活力。
5. 社会责任的践行
故事概述:台湾双羽公司在追求经济效益的同时,始终不忘履行社会责任。公司积极参与公益事业和社会活动;为当地经济发展和社会进步做出了积极贡献。通过践行社会责任;双羽公司不仅赢得了社会各界的广泛赞誉和尊重;还进一步提升了企业的品牌形象和知名度。
细节补充:在社会责任的践行过程中;双羽公司注重环保和可持续发展。公司采用先进的生产工艺和设备;减少能源消耗和废弃物排放;实现绿色生产和循环发展。同时;双羽公司还积极参与环保公益活动;倡导绿色消费和低碳生活理念;为构建美好家园贡献自己的力量。
近年来,全球半导体行业面临严重的缺芯问题,给包括福斯特半导体在内的众多企业带来了巨大挑战。为了应对这一挑战,福斯特半导体积极调整策略,加强内部管理和优化生产结构。公司更新了一套全新的内部管理系统,对多个业务领域和管理板块进行配套和升级,提升了团队研发效率和质量。同时,公司还加强了移动化办公模式的更新升级,满足了灵活管理的需要。通过这些措施,福斯特半导体在保持高效运营的同时,也增强了自身的抗风险能力,为未来的发展奠定了坚实基础。
进入上世纪六十年代,COTO TECHNOLOGY迎来了一个重大的转折点。公司开始探索线圈绕组以外的领域,通过引入簧片继电器,成功扩展了产品线。这一创新举措不仅丰富了公司的产品种类,更重要的是,它为公司打开了新的市场领域。到了七十年代,COTO更是凭借开发出的首款获得专利的低热电动势簧片继电器,一跃成为业界领先的干簧继电器制造商。
进入千禧年代,C&K因其卓越的市场表现和技术实力被ITT Industries收购。虽然成为了ITT的开关部门,但C&K仍然保留了自己的品牌名称。这一举措既保证了C&K能够继续享有ITT的资源支持,又使得C&K能够保持其独特的品牌文化和市场定位。
近年来,C&K在保持开关业务稳定发展的同时,还积极寻求新的增长点。为此,公司宣布成立了一个新的部门——C&K航空航天部。这个新部门旨在将公司在开关领域的专业技术与航空航天领域的需求相结合,为客户提供更先进、更可靠的系统解决方案。这一举措不仅展示了C&K在技术创新方面的实力,也为其未来的发展打开了新的大门。
这五个故事从不同角度展现了C&K公司在电子行业中的发展历程和成就。从磁芯记忆到微型开关的转型、成为世界领先的开关制造商、被ITT Industries收购与保持独立品牌、通过收购扩大全球业务与制造能力以及成立航空航天部拓展新领域,每一个阶段都充满了挑战与机遇。正是凭借着对技术创新的执着追求和对市场需求的敏锐洞察,C&K得以在激烈的竞争中脱颖而出,成为电子行业中的佼佼者。
为了进一步加强在全球市场的地位,C&K在2011年进行了一次重要的收购。这次收购不仅扩大了公司的业务范围,还提升了其设计和制造能力。通过这次收购,C&K得以在全球范围内提供更广泛的产品和服务,进一步巩固了其在电子行业中的领先地位。
Creating the works from public domain print editions means that no one owns a United States copyright in these works, so the Foundation (and you!) can copy and distribute it in the United States without permission and without payi ...… 查看全部问答∨ |
是这样的,写了verilog的一个小程序,编译成功了,然后创建bdf文件以后,再编译,就出错。 报错是: Error: Can\'t compile duplicate declarations of entity "sig" into library "work" Error: Instance could be entit ...… 查看全部问答∨ |
在MSP430 定时的时候,在设置为增计数模式的时候 ,CCRO=m,设置定时时间,定时时间长短怎么计算,即,m怎么计算? 请高手帮帮忙! 谢啦!… 查看全部问答∨ |
|
6.4.1 矩形波振荡电路 1.用电压比较器构成的矩形波振荡电路 用电压比较器构成的矩形波振荡电路如图6.4.1所示,它是在迟滞比较器(施密特触发 器)的基础上加上RT、CT定时电路所组成。 ...… 查看全部问答∨ |
|
在对f1132的p1.0,p1.1进行中断处理时发现! (p1.0 和 p1.1的中断是互锁的,既: 同一时间只允许一个io中断) 即使不允许p1.0中断(P1IE = BIT1;),p1IFG.0 也会变成1,这样就给中断处理程序带来了识别的困难! 大家有没有遇到同样的问题!!! ...… 查看全部问答∨ |