历史上的今天
返回首页

历史上的今天

今天是:2025年06月12日(星期四)

正在发生

2019年06月12日 | 基于stm32f10x单片机USB流程理解

2019-06-12 来源:eefocus

主要思路:


文件从main.c文件到main()函数开始:


主要重点是,开启中断:


USB_Interrupts_Config();


STM32不像C51单片机那样可以用过interrupt关键字来定义中断响应函数,STM32的中断响应函数接口存在中断向量表中。


其格式如下:


在文件hw_config.c里:


/* Enable the USB interrupt */

NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);


在stm32f10x_it.c给予响应:


void USB_LP_CAN1_RX0_IRQHandler(void)    //USB_LP_CAN1_RX0_IRQHandler 在这吃大亏啦,启动代码里面带1,这个不带,

{

    USB_Istr();    //USB_LP_CAN1_RX0_IRQn   //USB_Istr

}


USB_Istr(); 主要是对IMR_MSK 进行响应,其定义如下:


#define IMR_MSK (CNTR_CTRM  | CNTR_WKUPM | CNTR_SUSPM | CNTR_ERRM  | CNTR_SOFM

                 | CNTR_ESOFM | CNTR_RESETM )


我们关注的其实就是CTR(控制)函数了:


CTR_LP();


其主要会调用两个函数:


void EP1_OUT_Callback(void);


void EP2_IN_Callback(void);


关于单片机主要的流程是USB_Istr中断的调用,利用中断与主机HOST数据交换。 



推荐阅读

史海拾趣

Defender Security公司的发展小趣事

物联网技术的快速发展为网络安全带来了新的挑战和机遇。Defender Security公司积极应对这一变化,加大了对物联网安全领域的投入。他们与多家物联网企业合作,共同研发了适用于物联网设备的安全防护方案。通过不断优化和升级产品,Defender Security成功帮助物联网企业解决了安全问题,同时也为自己带来了新的增长点。

Avasem公司的发展小趣事

在国内市场取得一定成功后,Avasem公司开始实施国际化战略,以进一步拓展全球市场份额。公司首先在欧洲和北美等成熟市场设立了研发中心和销售网点,以便更好地了解当地市场需求和消费者偏好。随后,Avasem公司通过与当地合作伙伴建立战略联盟,共同推广其产品和技术。这一战略不仅提升了公司在全球市场的知名度,还为其带来了可观的收益增长。

Custom Components Inc公司的发展小趣事

Custom Components Inc(简称CCI)公司的发展历程始于一个技术突破。在公司成立的初期,CCI的研发团队成功开发了一种新型的电子元件,这种元件在性能和成本上均优于市场上的同类产品。这一技术突破立即引起了行业的关注,多家电子设备制造商纷纷向CCI抛出橄榄枝,希望建立长期合作关系。

随着市场需求的不断增长,CCI逐步扩大了生产规模,并通过技术创新不断提升产品质量。同时,公司还积极开拓国际市场,与海外客户建立了稳定的业务往来。凭借卓越的产品性能和良好的市场口碑,CCI逐渐在电子行业中崭露头角。

台湾奇力(Chip)公司的发展小趣事

奇力公司的成功离不开与奇美集团的紧密合作。奇美集团是台湾知名的面板生产厂家,拥有强大的技术实力和市场份额。奇力公司作为奇美集团的子公司,得到了奇美集团在技术、资金和市场等方面的全力支持。通过与奇美集团的紧密合作,奇力公司得以快速发展,并在LED芯片市场上取得了显著的成绩。

BESTECH公司的发展小趣事

奇力公司的成功离不开与奇美集团的紧密合作。奇美集团是台湾知名的面板生产厂家,拥有强大的技术实力和市场份额。奇力公司作为奇美集团的子公司,得到了奇美集团在技术、资金和市场等方面的全力支持。通过与奇美集团的紧密合作,奇力公司得以快速发展,并在LED芯片市场上取得了显著的成绩。

CSB公司的发展小趣事

在电子行业的初期,CSB公司以其独特的技术创新能力脱颖而出。公司研发团队在某一关键领域取得了重大突破,开发出了一款具有市场竞争力的新产品。这款产品不仅满足了消费者对性能和品质的高要求,还凭借其独特的设计和功能,吸引了大量忠实用户。随着产品的热销,CSB公司的知名度逐渐提升,市场份额也稳步增长。

问答坊 | AI 解惑

ADI 心电信号应用笔记(完整版)

这个应用笔记是ADI中国技术支持中心的技术人员所做,个人感觉,硬件滤波设计的不错,而且应用设计文档制作的是中文版,使人感到通俗易懂。同时CPU采用ARM内核的ADuC7020,因此可移植性比较好,总之,推荐大家,尤其是那些对滤波技术感兴趣的朋友, ...…

查看全部问答>

【藏书阁】液晶显示器原理与维修手册.pdf

一、液晶显示器的主要技术指标 1、尺寸和显示屏 一般LCD显示器(即LCD屏)的对角线尺寸有以下几种:14\"、15\"、15.1\"、17\"、17 .1\"。 本机为15\"(304.1×228 .1mm)。 现在的LCD显示屏均采用薄膜晶体管有源矩阵显示 屏(TFT Active Matrix Pane ...…

查看全部问答>

哪位仁兄能列举下BUCK BUCK-BROOK ,反激等拓扑结构的区别

哪位仁兄能列举下BUCK BUCK-BROOK ,反激等拓扑结构的区别; 最好是带有各个结构的简易图的那种;之前有在论坛 上见过,现在找不到了;很直观;…

查看全部问答>

修改GNU项目

最近在做usb通信的东西,用了libusb开源库。但是它缺少我需要的API,我自己实现了,libusb源码编译安装成功,但是在编译应用程序的时候却找不到我之前添加的API函数。生成configure、makefile那些个工具,一大套代码,实在找不到应该改哪,有没有改 ...…

查看全部问答>

皮肤

大哥,大姐们谁有做皮肤方面的经验呀?给分享分享。谢谢…

查看全部问答>

wince porting問題

Got EDBG_CMD_JUMPIMG Got EDBG_CMD_CONFIG, flags:0x00000000 Network Transfer Complete Verify checksums... Checksums verified correct. !!Nk Start=0x900B8000 Found pTOC signature. dwOffset=0x0, dwPhysStart=0x900B8000 ROMHDR at ...…

查看全部问答>

用keil uv4 编写LPC1114 程序时的优化问题

keil uv4 一共有0~3四级优化 除0级外其余的1,2,3任何一级,程序在编译过程中只要选择了任何一级优化,下载进去之后就不运行了,仿真后发现是出不了其中的一个子函数,函数是这样的:   void JM_CS(uint32 relative_address) { &nb ...…

查看全部问答>

新人真心求罩

最近刚刚搞完map430的LaunchPad,会一些,但不是很会,现在转战Zigbee,当然,430不会丢的,继续,因为有高人知道说,CC2530和430很类似,所以,希望一起学一下,不要狠狠熟练,希望能会一些基本应用啊,和它的基本原理。。。。 真心求指导啊~~~…

查看全部问答>

新人求资料,关于msp430和开发板的

有一个关于430的题目,小弟不知道怎么下手,有没有人有关于这个题目的资料,求发一份,谢谢啦!!! 题目是:基于msp430的警灯警笛控制器的设计 有的请发邮箱923479780@qq.com…

查看全部问答>