历史上的今天
今天是: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数据交换。
史海拾趣
|
这个应用笔记是ADI中国技术支持中心的技术人员所做,个人感觉,硬件滤波设计的不错,而且应用设计文档制作的是中文版,使人感到通俗易懂。同时CPU采用ARM内核的ADuC7020,因此可移植性比较好,总之,推荐大家,尤其是那些对滤波技术感兴趣的朋友, ...… 查看全部问答> |
|
一、液晶显示器的主要技术指标 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 ,反激等拓扑结构的区别; 最好是带有各个结构的简易图的那种;之前有在论坛 上见过,现在找不到了;很直观;… 查看全部问答> |
|
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 一共有0~3四级优化 除0级外其余的1,2,3任何一级,程序在编译过程中只要选择了任何一级优化,下载进去之后就不运行了,仿真后发现是出不了其中的一个子函数,函数是这样的: void JM_CS(uint32 relative_address) { &nb ...… 查看全部问答> |
|
有一个关于430的题目,小弟不知道怎么下手,有没有人有关于这个题目的资料,求发一份,谢谢啦!!! 题目是:基于msp430的警灯警笛控制器的设计 有的请发邮箱923479780@qq.com… 查看全部问答> |




