stm32f0USB-80

问题描述:STM32上能跑Android吗?对存储器有什么要求呢? 大家好,小编来为大家解答以下问题,一个有趣的事情,一个有趣的事情,今天让我们一起来看看吧!

如何使用stm32进行usb应用开发

stm32f0USB-80的相关图片

不能。

Android系统需要百兆以上的处理器和数十兆的RAM空间。标准Linux需要处理器具有MMU(存储器管理单元)。STM32满足不了这两点要求,所以STM32上是无法跑Android的。

STM32是M系列,属于低成本设计,不带MMU控制器,不可能运行Linuxuc,μClinux不算Linux的。因此基于STM平台且满足实时控制要求操作系统,只有以下5种可供移植选择。分别为μClinux、μC/OS-II、eCos、FreeRTOS和rt-thread。

扩展资料:

STM32L 系列产品基于超低功耗的 ARM Cortex-M4处理器内核,采用意法半导体独有的两大节能技术:130nm 专用低泄漏电流制造工艺和优化的节能架构,提供业界领先的节能性能。

该系列属于意法半导体阵容强大的 32 位 STM32 微控制器产品家族,该产品家族共有 200余款产品,全系列产品共用大部分引脚、软件和外设,优异的兼容性为开发人员带来最大的设计灵活性。

STM32F0 系列产品基于超低功耗的 ARM Cortex-M0 处理器内核,整合增强的技术和功能,瞄准超低成本预算的应用。该系列微控制器缩短了采用 8 位和 16 位微控制器的设备与采用 32 位微控制器的设备之间的性能差距,能够在经济型用户终端产品上实现先进且复杂的功能。

参考资料来源:百度百科-stm32。

stm32usb键盘防止电脑开机唤醒的相关图片

stm32usb键盘防止电脑开机唤醒

主要是分析官方的Custom_HID 例程,强烈建议大家结合USB2.0协议去分析源代码。特别不错,分析完之后就可以修改移植了。另外,有个叫源享科技的出了一套80集的关于STM32的整套视频,对USB等高级外设讲的非常透彻,结合原子的开发板学习,效果也很好的。那视频在源享科技官网上挺贵的,哈哈,最后我在淘宝上发现那些新开的店最便宜的才10块钱。老板是个挺厉害的研究生,在学USB的时候帮了我不少。。废话不说了,关于修改官方例程的步骤::附件USB程序。

一、usb_desc.c文件

根据你程序使用的通信方式修改。usb_desc.h文件中定义要根据usb_desc.c文件中的数组的大小;ConfigDescriptor[SIZ_CONFIG_DESC]下添加需要处理的端点;根据需要添加或删除报告描述符(主要用于HID)和CDC接口描述符(主要用于实现USB转串口)等。具体方法可以下载个“电脑圈圈”使用D12编写的例子。

二、Usb_conf.h文件:

1、修改需要处理那些中断

CNTR_CTRM

处理数据正确传输后控制,比如说响应主机。

CNTR_DOVRM

/* DMA OVeR/underrun Mask */。

CNTR_ERRM

/* ERRor Mask */。

CNTR_WKUPM 0

/* WaKe UP Mask */。

CNTR_SUSPM

/* SUSPend Mask */。

CNTR_RESETM

主要处理USB复位后进行一些初始化任务。

CNTR_SOFM

/* Start Of Frame Mask */。

CNTR_ESOFM

/* Expected Start Of Frame Mask */。

如:

usb_conf.h中的#define IMR_MSK (CNTR_CTRM | CNTR_SOFM | CNTR_RESETM )是决定USB_CNTR寄存器中的那个USB相关中断启动还是屏蔽。

2、根据需要增加端点缓存地址,要根据缓存区的地址修改,防止数据重叠。

如下为根据每个缓冲区的大小为64字节修改:

#define ENDP1_TXADDR。

(0xC0)

#define ENDP1_RXADDR。

(0xD0)

#define ENDP2_TXADDR。

(0x100)

#define ENDP2_RXADDR。

(0x140)

#define ENDP3_TXADDR。

(0x180)

#define ENDP3_RXADDR。

(0x1C0)

3、修改/* CTR service routines */下的EPX_IN_Callback和EPX_OUT_Callback。注释掉需要处理的函数。NOP_Process表示不处理。

三usb_prop.c文件

1、修改void XX_Reset(void)(如:void Joystick_Reset(void))

一般/* Initialize Endpoint 0 */的不用修改,如下为举例说明端点1的初始化,其他端口原理一样。

SetEPType(ENDP1, EP_INTERRUPT);//设置端点1类型。

/*EP_BULK

批量端点

EP_CONTROL 控制端点。

EP_ISOCHRNOUS 同步端点。

EP_INTERRUPT 中断端点*/。

SetEPTxAddr(ENDP1, ENDP1_TXADDR); //设置端点1缓冲区基地址。

SetEPTxCount(ENDP1, 64);// 配置Tx 缓冲计数器。

SetEPRxStatus(ENDP1, EP_RX_DIS);// //设置端点接收关闭。

SetEPTxStatus(ENDP1, EP_TX_NAK);// //设置端点1发送不应答。

/*

#define EP_RX_DIS。

(0x0000) // EndPoint RX DISabled 端点接收关闭。

#define EP_RX_STALL。

(0x1000) // EndPoint RX STALLed 端点接收延迟。

#define EP_RX_NAK。

(0x2000) // EndPoint RX NAKed 端点接收不应答。

#define EP_RX_VALID。

(0x3000) // EndPoint RX VALID端点接收有效 。

#define EP_TX_DIS。

(0x0000) //EndPoint TX DISabled 。

#define EP_TX_STALL。

(0x0010) // EndPoint TX STALLed 。

#define EP_TX_NAK。

(0x0020) // EndPoint TX NAKed 。

#define EP_TX_VALID。

(0x0030) // EndPoint TX VALID */。

2、删除不相干的描述符等。

如自定义的USB设备就不需要以下结构体初始化:

ONE_DESCRIPTOR Joystick_Report_Descriptor。

ONE_DESCRIPTOR Mouse_Hid_Descriptor。

3、修改RESULT XX_Data_Setup(u8 RequestNo)的数据类请求处理。

如Custom_HID例程修改为“自定义USB设备”例程时可以将以下代码删除。

if ((RequestNo == GET_DESCRIPTOR)。

&& (Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))。

&& (pInformation->USBwIndex0 == 0))。

if (pInformation->USBwValue1 == REPORT_DESCRIPTOR)。

CopyRoutine = Joystick_GetReportDescriptor;。

else if (pInformation->USBwValue1 == HID_DESCRIPTOR_TYPE)。

CopyRoutine = Joystick_GetHIDDescriptor;。

4、删除不相干的获得描述符返回函数。

如自定义的USB设备就不需要以下函数:

Joystick_GetReportDescriptor。

Joystick_GetHIDDescriptor。

四、usb_endp.c文件

1、增加之前定义的中断数据处理函数。

如:

void EP1_OUT_Callback(void)。

这些写接收代码

五、数据发送和接收,举例说明

1、数据接收

u8 DataLen;

DataLen = GetEPRxCount(ENDP1);。

PMAToUserBufferCopy(TX1_buffer, ENDP1_RXADDR, DataLen);。

SetEPRxValid(ENDP1);。

USART1_Send(DataLen);。

count_out = 1;

2、数据发送

UserToPMABufferCopy(InBuffer, GetEPTxAddr(ENDP1), 64);。

SetEPTxCount(ENDP1, 64);。

SetEPTxValid(ENDP1);。

如果你发送数据较为频繁,每次发送前应使用GetEPTxStatus(ENDP1)检测上次发送是否完成。如果端点状态处于EP_TX_VALID,说明发送未结束,如果端点状态处于EP_TX_NAK,说明发送结束。

stm32上插usb,能给usb供电吗的相关图片

stm32上插usb,能给usb供电吗

1.USB Resume信号

USB设备进入挂起状态之后,将由Resume信号进行唤醒。Resume信号可以由USB主机发起,也可以由USB设备本身触发,但是只有USB主机可以结束Resume信号。

(1)主机在挂起设备后可通过翻转数据线上的极性并保持20ms来唤醒设备,并以低速EOP信号结尾。

(2)如果设备支持远程唤醒,设备可向主机发起远程唤醒请求,前提是设备已进入idle状态至少5ms,设备会驱动总线进入K状态,如下图,K状态必须维持1ms-15ms之内,此信号会在1ms内被主机接管,主机会继续驱动唤醒信号直到20ms,并以低速EOP信号结尾。

2.USB远程唤醒的方式

当主机控制器进入挂起后,所有设备是没办法向主机提交数据的,那主机是怎样知道设备的唤醒请求呢?答案是通过电信号。如下图(usb_20.pdf Page-333),设备需要生成一个1ms-15ms的K状态电信号(这里例子为10ms),hub会在1ms内捕获到该信号(此时设备其实就可以停止驱动K状态了),hub会进行和设备相同的操作把此信号传递给主机控制器,主机控制器对唤醒操作进行接管,主机会继续驱动唤醒信号直到20ms,并以低速EOP信号结尾,完成对设备的唤醒操作。如果是一个鼠标设备的话,休眠的系统有时会被恢复,其实这里大家可以看做是设备给主机系统发送一个IO中断信号,主机系统检测到后可以实现一系列的后续操作。

3.J状态和K状态

J状态 LS(低速) 差分0

FS(全速) 差分1

K状态 LS(低速) 差分1

FS(全速) 差分0

4.STM32 USB设备远程唤醒机制详解。

首先我们以我自己设计的STM32 USB鼠标例子来分析。

1.USB外设需支持远程唤醒操作。

USB外设必须支持远程唤醒功能,当然STM32F103 USB外设符合USB2.0全速设备的技术规范,所以支持远程唤醒的功能。

2.USB设备描述符设置远程唤醒。

USB设备配置描述符设备属性中必须Bit5必须为1(remote wake-up)。

STM32F103鼠标设备配置描述符源代码如下,从0数第7个字节0xE0(1110000b),标识设备是自供电且具有远程唤醒功能。

3.STM32 USB设备远程唤醒代码剖析。

实现的功能就是STM32按下一个按键后,STM32 USB设备发送一次远程。

对于STM32 IO口来说,多大范围的电压算是高电平?多大范围的电压算是低电平?对于51的呢?的相关图片

对于STM32 IO口来说,多大范围的电压算是高电平?多大范围的电压算是低电平?对于51的呢?

不可以,USB(USB_SLAVE)是用来实现 STM32 与电脑的 USB 通信的,这个需要在 STM32上面刷有USB协议的代码才可以用(比如USB读卡器、USB 声。

STM32F030R8T6可以用usb下载吗?

1、STM32引脚输入电平的范围是ALVC, 输入小于0,输入大于2V算高电平,LV 、ALVT中 8V算低电平。

2、 5V CMOS、 HC、 AHC、 AC中, 输入大于3.5V算高电平 | | 输入小于1.5V算低电平;

3、 5V TTL 、ABT 、AHCT、 HCT、 ACT中 , 输入大于2V算高电平 | | 输入小于0.8V算低电平;

4、STM32的IO管脚有两种:TTL和CMOS,所有管脚都兼容TTL和CMOS电平。也就是说,从输入识别电压上看,所有管脚(不管是TTL管脚还是CMOS管脚)都可以识别TTL或CMOS电平。下面是摘自STM32数据手册的有关数据:

拓展资料

STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex®-M0,M0+,M3, M4和M7内核(ST's product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex®-M0 and M0+, Cortex®-M3, Cortex®-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform) 。按内核架构分为不同产品:

主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)

参考资料:百度百科-STM32。

原文地址:http://www.qianchusai.com/stm32f0USB-80.html

kindle哪个版本性价比高,kindle哪个版本性价比最高

kindle哪个版本性价比高,kindle哪个版本性价比最高

metamyelocyte-70

metamyelocyte-70

耳机插头改fm天线电路图,耳机改插头对音质有影响吗

耳机插头改fm天线电路图,耳机改插头对音质有影响吗

晅曜古今,曜这个字念什么字

晅曜古今,曜这个字念什么字

猪猪侠睡前故事文字版,猪猪侠睡前故事在线试听

猪猪侠睡前故事文字版,猪猪侠睡前故事在线试听

联想拯救者14刷bios支持nvme,拯救者刷bios有什么作用

联想拯救者14刷bios支持nvme,拯救者刷bios有什么作用

lw/我国人口问题资源图片,我国人口问题主要包括哪些

lw/我国人口问题资源图片,我国人口问题主要包括哪些

二年级好词好句,二年级好词好句摘抄大全短句

二年级好词好句,二年级好词好句摘抄大全短句

神态描写的段落200字左右,神态描写的段落200字左右怎么写

神态描写的段落200字左右,神态描写的段落200字左右怎么写

Beachhead,beachhead of cooperation

Beachhead,beachhead of cooperation