STM32工程模板

合集下载

STM32 LL 库使用指南说明书

STM32 LL 库使用指南说明书

STM32 LL库使用指南---By Fengzi熟悉STM32的都知道ST官方提供了非常方便好用的库函数供用户使用,多数人都使用过STM32标准外设库,STM32Cube库(即HAL库),这个LL库是什么鬼,却从来没听说过。

好吧,我承认这个名字是我自己XJB取的。

目录一、初识LL 库 (1)二、怎么使用LL库 (3)三、新建STM32LL库工程模板 (5)四、第一个程序——点亮LED (8)五、添加其他程序功能 (10)………………………………………………………………………………………………………………………………………………….一、初识LL 库最近论坛发的STM32L476RG Nucleo开发板到手了,准备学习玩耍,当然第一步就是下载资料,于是我下载STM32L4Cube 1.1.0版本,打开逐个查看,好像和以前一样的,没什么特别嘛,于是准备开始开发。

等等,好像还真发现了有点不一样:熟悉HAL库的都知道,该库的文件几乎都是以stm32xxx_hal_xxx.h/.c命名的,为了和以前的标准库有个区分,上图中那些是什么鬼前辈说,遇到问题赶紧查手册,于是我果断打开STM32L4Cube库的说明手册(UM1884):原来这个东西叫做Low Layer APIs,作为英文渣渣表示实在不习惯洋里洋气的高大上名字,于是擅自把他叫做【STM32LL库】了(不服的你咬我啊)。

从这里看好像是说这个东东比HAL库更接近硬件,到底什么鬼,还不清楚。

但是以前好像没见过这个东西啊,就算是STM32L4Cube的1.0.0版本中都没有。

看看Cube发行历史:原来LL库是在1.1.0版本才加上的,大概意思就是:1.LL APIs是寄存器级的编程,嗯,也就是说我们常说的直接操作寄存器吧。

2.LL APIs适用于xxx等一大堆外设3.LL APIs函数全部定义为static inline函数,放在对应的头文件中,用户使用需要包含相关头文件4.参考这两个文档看看LL库文件在Cube库中的位置,有20多个文件,全部以stm32l4xx_ll_xxx.h命名:STM32Cube_FW_L4_V1.1.0\Drivers\STM32L4xx_HAL_Driver\IncSTM32L4是面向低功耗市场的,同时不失高性能,功耗和性能往往是两个矛盾的东西,ST在硬件设计上想了各种办法来实现兼顾低功耗高性能(例如各种低功耗模式,LP外设等),而在软件层面,程序也讲求效率,LL库全是直接操作寄存器,直接操作寄存器往往效率较高,而且函数定义为内联函数,调用函数时不是堆栈调用,而是直接把函数的代码嵌入到调用的地方,利于提高代码相率,我想这也是ST在STM32L4系列中推出这个直接操作寄存器的LL库的原因之一吧。

一步步建立 STM32 UCOS 模板

一步步建立 STM32 UCOS 模板

uCOS学习随笔 StepbyStep‐1——构建模板(基于STM32控制的第四代圆梦小车)一、序基于第四代圆梦小车 —— FIRA 设计了一个使用STM32的控制板(详细介绍见项目中的说明: Introduction B ‐ Hardware of the Smart Car.pdf )。

既然硬件从51升级到ARM,软件也应该相应升级,似乎不能再编写那种简单的轮询调度程序,也应该相应升级到基于操作系统编程。

按STM32的规模和性能,以及小车的控制需求,实时多任务操作系统 uCOSII 应该是不二的选择,不论从其性能和功能考虑,还是从学习角度考虑,uCOSII 都很适合。

首先,它是开源的,有丰富的资源。

其次,它是可靠的,符合正式的工业控制、产品设计需求。

小车所面对的是那些学习相关专业的大学生,作为他们学习的辅助工具,趣味性只是为了降低学习的枯燥性,不是目的。

他们借助这个平台是为了积攒应付未来工作的能力,所以,学习内容的实用性是必须考虑的。

本人从未基于操作系统编写嵌入式程序。

开始使用 MCU的时候,MCU的内存太小,256字节 RAM ,2K字节 ROM,能勉强把程序装入就不错了,连 C语言都不敢选择。

而且,那时好像也没有 RTOS(Real Time Operation System),或者是由于信息交流渠道匮乏,不知道有 RTOS。

既然我提供了这个平台,也借此机会尝试一下,和大家一起学习使用 uCOSII。

(从单片机应用升级为嵌入式应用 ^_^)二、Step1想要得到什么?(需求分析)第一步我想得到的是:1)如何建立一个基于 uCOSII 的编程环境(目录、文件组织);2)如何基于IDE(IAR或RvMDK)建立一个工程,能够产生可以运行的程序;3)得到一个“干净的”、可以作为模板的uCOSII程序组(Project);4)通过上述过程初步理解在 uCOSII 下如何编写应用程序。

之所以要把“如何建立……”作为需求,而不是找一个现成的模板或示例程序修改、添加自己的功能,是因为看了许多这种程序,感觉“极不可靠”!因为程序中有太多的东西不知道为何而存在?不知道为何而被注释掉?似乎这些东西都像“定时炸弹”,早晚会给你的程序带来麻烦。

基于stm32的毕业设计与功能模块

基于stm32的毕业设计与功能模块

基于STM32的毕业设计与功能模块1. 简介毕业设计是大学生最后的学业总结和展示,具有很高的实践性和综合性。

基于STM32的毕业设计越来越受到学生们的青睐,因为STM32作为一款功能强大的微控制器,具有丰富的外设和灵活的应用,可以满足各种设计需求。

本文将通过深入探讨基于STM32的毕业设计与功能模块,来帮助大家更好地理解这一主题。

2. STM32微控制器简介STM32是由意法半导体(STMicroelectronics)推出的32位RISC微控制器系列产品,具有低功耗、高性能、丰富的外设以及灵活的应用特点。

在毕业设计中,选择STM32作为核心控制器,可以为设计提供强支持,满足各种功能模块的要求。

3. 功能模块的选择在基于STM32的毕业设计中,功能模块的选择至关重要。

通常情况下,需要根据具体的设计需求来选择相应的功能模块,例如:电源模块、通信模块、传感器模块等。

在这里,我们可以结合具体的毕业设计案例来进行分析和讨论。

4. 电源模块设计电源模块是毕业设计中不可或缺的部分,它为整个系统提供稳定的电源供应。

在基于STM32的毕业设计中,选择合适的电源模块对于整个系统的稳定性和可靠性至关重要。

可以选择线性稳压电源模块或者开关电源模块,根据具体的设计需求来进行选择和设计。

5. 通信模块设计通信模块在现代的毕业设计中占据着重要地位,它可以实现系统与外部设备的数据交互和信息传输。

在基于STM32的毕业设计中,可以选择串口通信模块、CAN总线通信模块或者无线通信模块,根据具体的应用场景和通信距离来进行选择和设计。

6. 传感器模块设计传感器模块在毕业设计中也扮演着重要的角色,它可以实现对各种环境参数的检测和监控。

在基于STM32的毕业设计中,可以选择温湿度传感器模块、光照传感器模块或者姿态传感器模块,根据具体的检测参数和精度要求来进行选择和设计。

7. 毕业设计案例分析以某智能家居控制系统为例,该系统基于STM32微控制器,包括电源模块、通信模块和传感器模块。

stm32f411标准例程

stm32f411标准例程

stm32f411标准例程一、概述STM32F411是一款高性能的ARM Cortex-M4微控制器,广泛应用于各种嵌入式系统。

标准例程是STM32F411开发中常用的示例代码,它包含了该微控制器的基本功能和操作方法,帮助开发者快速熟悉该芯片的使用。

二、功能介绍本例程主要涵盖了以下功能:1. 启动配置:包括时钟树、GPIO配置等基本设置。

2. 串口通信:使用USART1进行串口通信,包括数据发送和接收。

3. 定时器使用:使用TIM2实现定时功能,例如周期性中断和PWM输出。

4. SPI通信:通过SPI接口与外设进行数据交换。

5. I2C通信:实现I2C通信接口,进行设备间的数据传输。

6. ADC使用:配置ADC模块,实现对模拟信号的采集和处理。

7. 硬件按键和LED控制:通过按键和LED灯实现人机交互。

三、代码解析以下是一个简单的代码示例,展示了如何使用STM32F411实现串口通信:```c#include "stm32f4xx.h"#include "stm32f4xx_spi.h"#include "stm32f4xx_usart.h"void USART1_Init(void) {USART_InitTypeDef USART_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);USART_ART_BaudRate = 9600;USART_ART_WordLength = USART_WordLength_8b;USART_ART_StopBits = USART_StopBits_1;USART_ART_Parity = USART_Parity_No;USART_ART_HardwareFlowControl =USART_HardwareFlowControl_None;USART_ART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure);}void USART1_SendData(uint8_t data) {USART_SendData(USART1, data);}void main(void) {// 初始化USART1...while (1) {uint8_t rxData = USART1->DR; // 读取接收到的数据...// 处理接收到的数据...USART1->CR1 |= USART_CR1_TXEIE; // 设置中断标志...}}```四、注意事项在使用STM32F411开发时,请注意以下几点:1. 确保已正确安装STM32F4系列芯片的驱动程序和开发环境。

stm32f1 标准例程

stm32f1 标准例程

stm32f1 标准例程一、概述STM32F1是一款广泛应用于嵌入式系统开发的32位ARMCortex-M 内核微控制器。

标准例程是用于帮助初学者快速了解和掌握STM32F1的基本操作和功能的应用程序。

本例程旨在通过一系列简单的示例程序,帮助读者熟悉STM32F1的基本开发流程和常用功能。

二、开发环境设置1.安装KeiluVision开发环境,并配置相应的编译器和调试器。

2.下载STM32F1的固件库,并将其添加到KeiluVision项目中。

三、标准例程内容以下是一个简单的STM32F1标准例程程序,包含了LED灯的控制、按键输入、串口通信等功能:```c#include"stm32f10x.h"#include"stm32f1_system.h"#include"stm32f1_gpio.h"#include"stm32f1_rcc.h"#include"stm32f1_usart.h"#include"stm32f1_dma.h"//初始化GPIO和USART外设voidinit_peripherals(){GPIO_InitTypeDefGPIO_InitStruct;USART_InitTypeDefUSART_InitStruct;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Perip h_USART2,ENABLE);GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;//设置LED 灯和按键引脚为输出GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);USART_ART_BaudRate=9600;//设置串口波特率为9600USART_ART_WordLength=USART_WordLength_8b;//8位数据位USART_ART_StopBits=USART_StopBits_1;//1个停止位USART_ART_Parity=USART_Parity_No;//无奇偶校验位USART_ART_HardwareFlowControl=USART_Hardware FlowControl_None;//不使用硬件流控制USART_Init(USART2,&USART_InitStruct);}//按键中断处理函数voidUSART2_IRQHandler(){if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET){//接收到数据中断//处理接收到的数据,例如通过按键值来判断用户操作switch(KEYB){caseKEYB_POWER://开关机键值定义,这里仅为示例if(ONOFF==0){//机器已开机状态检查ONOFF=1;//开启电源开关,机器开机启动LED灯闪烁}else{//机器已关机状态检查,关闭电源开关并关闭LED灯ONOFF=0;}break;default:break;//其他按键暂不处理,保留为默认值不发送回设备}USART_SendData(USART2,KEYB);//将按键值发送回设备,这里仅为示例发送一个按键值给设备进行反馈操作结果KEYB=KEYB&KEYB+1;//重置按键值计数器,保留不产生误触按按键的行为需求。

如何为STM32F030建立工程模板6

如何为STM32F030建立工程模板6

如何为STM32F030建立工程模板最近在学习STM32F030的相关知识,在建立工程模板过程中总结了一些经验;这些经验大多是通过网络找到的;实际上是炒了正点原子的剩饭,望其莫怪;现在共享给大家,希望对大家能有帮助;首先、在建立工程之前,建议各位童鞋在电脑的某个目录下面建立一个文件夹,后面所建立的工程文件都放在这个文件夹下面,这里我们建立一个文件夹为LED。

注意,关于文件夹的命名,建议大家都用英文,也就是说让这个工程创建在一个全英文的路径下,这样可以避免在链接的过程出现错误;1、回到MDK主界面,可以看到工程中有一个默认的工程,点击这个工程名字,然后选择菜单Project->Close Project,就关闭掉这个工程了!这样整个MDK就是一个空的了,接下来我们将建立我们的工程模版。

2、点击Keil的菜单:Project–>New Uvision Project,然后将目录定位到刚才建立的文件夹LED之下,在这个目录下面建立子文件夹USER(我们的代码工程文件都是放在USER目录,很多人喜欢新建“Project”目录放在下面,这也是可以的,这个就看个人喜好了),然后定位到USER目录下面,我们的工程文件就都保存到USER文件夹下面。

工程命名为LED,点击保存。

接下来,我们在LED工程目录下面,新建3个文件夹CORE,OBJ以及STM32F0_FWLib。

CORE用来存放核心文件和启动文件,OBJ是用来存放编译过程文件以及hex文件,STM32F10x_FWLib文件夹顾名思义用来存放ST官方提供的库函数源码文件。

USER目录除了用来放工程文件外,还用来存放主函数文件main.c,以及其他包括system_stm32f10x.c、等等3、接下来会出现一个选择芯片型号的“Device”界面,就是选择我们的所用芯片的型号,这里我们定位到STMicroelectronics下面的STM32F030R8;然后点击“OK”即可;(如果是其他芯片,请选择对应的型号即可)。

【自写】如何使用STM32_V3.5版本固件库在Keil4下建立工程模板

【自写】如何使用STM32_V3.5版本固件库在Keil4下建立工程模板

如何使用STM32_V3.5版本固件库在Keil4下建立工程模板By 呼延靖国准备工作如下:1.下载STM32F10x_StdPeriph_Lib_V3.5.0固件库。

2.下载并安装好Keil uVision V4.10(MDK4)开始:1.首先解压STM32F10x_StdPeriph_Lib_V3.5.0固件库。

PS:保留一个备份,你懂的。

解压得到如图1所示的几个文件夹。

其中_htmresc文件夹:里面是ST的Logo图片,没有多大用,可以删除。

Libraries文件夹:是比较重要的文件包含STM32的系统文件和大量头文件,即库文件。

Project文件夹:里面为STM32F10x的例程和工程模板。

Keil对应的就是 MDK-ARM 文件下的工程模板。

也可以利用这个工程模板为原型建立自己的工程模板本文不用此法。

Utilities文件夹:里面有一些实用程序,也没多大用,可删除。

Release_Notes.html:版本注视,可删除。

stm32f10x_stdperiph_lib_um.chm:帮助文件,你懂的。

2.为了项目程序中的各部分条理清晰,我们建议工程文件夹时对其子目录子下归类建立子文件夹,例建立一个工程文件夹My Project,在其下在创建五个子文件夹如图2所示:其中:CMSIS文件夹:此文件夹从STM32F10x_StdPeriph_Lib_V3.5.0固件库中的CMSIS文件夹直接复制过来。

Libraries文件夹:此文件夹从STM32F10x_StdPeriph_Lib_V3.5.0固件库中的Libraries文件夹复制过来。

只保留当中的inc和src文件夹。

即只包含头文件。

Startup文件夹:此文件夹从CMSIS\CM3\DeviceSupport\ST\STM32F10x\Startup目录下直接将Startup文件剪切出来。

其中放置的是启动代码,具体的代码根据所用芯片的容量选择,我们用的STM32F103C8为中等容量芯片,故选择其中的startup_stm32f10x_md.s启动代码,其他不用的可以删除User文件夹:User文件夹为用户的应用程序,其中包括main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h四个文件,这四个文件可从V3.5.0固件库Project\STM32F10x_StdPeriph_Template目录下复制过来,当然main.c文件中的内容可删除。

13个基于STM32的经典项目设计实例,全套资料~-嵌入式系统-与非网

13个基于STM32的经典项目设计实例,全套资料~-嵌入式系统-与非网

13个基于STM32的经典项目设计实例,全套资料~-嵌入式系统-与非网STM32单片机现已火遍大江南北,各种教程资料也是遍布各大网站论坛,可谓一抓一大把,但大部分都差不多。

今天总结了几篇电路城上关于STM32 的制作,不能说每篇都是经典,但都是在其他地方找不到的,很有学习参考意义的设计实例。

尤其对于新手,是一个学习stm32单片机的“活生生”的范例。

1.开源硬件-基于STM32的自动刹车灯设计自动刹车灯由电池供电并内置加速度传感器,因此无需额外连接其他线缆。

使用两节5号电池时,设计待机时间为一年以上(待机功耗66微安),基本可以实现永不关机,即装即忘。

2.基于STM32F407的openmv项目设计资料本项目是一个openmv,通过摄像头可以把图像实时传输给显示屏显示。

MCU选择的是STM32F407(STM 32F407数据手册),ARM Cortex-M4内核,最高频率可达180Mhz,包含一个单精度浮点DSP,一个DCMI(数字相机接口)。

3.STM32无线抢答器无线抢答器采用STM32F302芯片主控,同时用蓝牙,语音模块,数码管,七彩灯等部件构成,当主持人按下抢答键时,数码管进入倒记时,选手做好准备,当数码管从9变为0时,多名选手通过手机上虚拟按键进行抢答,同时语音播报抢答结果,显示屏上显示选手的抢答时间。

4.基于ARM-STM32的两轮自平衡小车小车直立和方向控制任务都是直接通过控制小车两个电机完成的。

假设小车电机可以虚拟地拆解成两个不同功能的驱动电机,它们同轴相连,分别控制小车的直立平衡、左右方向。

5.基于STM32F4高速频谱分析仪完整版(原创)本系统是以STM32F407进行加Blackman预处理,再做1024个点FFT进行频谱分析,最后将数据显示在LCD12864上,以便进行人机交互!该系统可实现任意波形信号的频谱显示,以及可以自动寻找各谐波分量的幅值,频率以及相位并进行8位有效数据显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

你是问有官方固件库创建工程吧?我这里给你说说MDK的创建方法,如果你用的时IAR环境也差不多。

1.解压stm32f10x_stdperiph_lib.zip 可以从ST官方网站免费下载。

最新标准库版本为3.5.0
2.创建一个Demo文件夹
2.1 新建子文件夹User,用于存放用户源程序
2.2 新建子文件夹Project,用户KEIL工程文件
2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。

3. 复制源代码到Demo文件夹
3.1 将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2Li braries文件整体复制到Demo文件夹下。

这就是ST的标准库,是以源代码形式提供的。

3.2 将库中的演示代码IOToggle中的文件复制到Demo\User文件夹.
4. 新建一个Keil MDK工程
4.1 启动Keil MDK,点击菜单New uVision Project,然后按向导进行操作
4.2 选择CPU类型为STM32F103ZE (这是安富莱STM32开发板采用CPU类型)
4.3 当提示是否复制启动代码时,请选择否。

(我们用最新的库中的启动代码,不用Keil软件自带的旧版本启动文件)
4.4 根据自己的需要修改Target名字。

(名字任意)
4.5 为了便于代码管理,在这个Project下创建几个Group (名字可以任意)
User : 存放用户自己写的源代码
RVMDK : 存放启动文件(汇编文件)
StdPeriph_Driver : 存放ST标准库文件
CMSIS : 存放CMSIS接口文件(这也是库的一部分)
4.6 创建好Group后,我们开始依次添加文件。

5. 修改源代码。

我们将修改main.c 文件,换成我们自己跑马灯程序。

6. 配置工程, 点击“Options”按钮
6.1 切换到Output。

选择Object文件夹。

在Create Hex File 前打钩。

6.2 切换带Listing。

选择Listings文件夹
6.3 切换到C/C++
添加两个预编译宏STM32F10X_HD, USE_STDPERIPH_D RIVER (这是ST库用到了这两个宏)
修改Includes路径
6.4 切换到Debug
选择硬件调试器(缺省是软件仿真),我们选择Cortex-M3 J -Link调试器
再Run to main前打钩
6.4 切换到Utilities
选额调试器类型,我们选择Cortex-M3 J-Link
点settings按钮,添加Flash编程算法,我们选择STM32高密度器件,Flash容量512K字节
7. 配置工程完毕。

下面开始编译。

8. 编译OK,开始调试。

9. 教程结束。

讲得比较清楚了吧,还有疑问可以问我。

或者联系我,我一步一步教你。

提问者评价
谢谢了
评论(5)|160
xiaosong2014|四级采纳率56%
擅长:常见软件硬件
其他类似问题
∙2010-11-26天啊!如何让学stm32???70
∙2013-10-31STM32函数库是否通用1
∙2010-08-06学习STM3220
∙2013-11-08在线等stm32的固件函数库1
∙2012-03-28stm32建工程是的一个小问题
更多相关问题>>
按默认排序|按时间排序
其他3条回答
2011-07-28 00:25ninjalp|四级
函数库只不过是意法半导体公司的开发人员为了缩短程序员的工作量
而开发的对STM32内部寄存器配置的一个底层驱动库,使用函数库是
主要是为了缩短开发周期,初学一般可以选择这种方式,比较容易上手,不过上手之后应该自己去研究一下STM32内部寄存器的配置,比如位
段等。

使用函数库创建工程,最简单的就是把.H和.c文件添加到工程中,然后
自己写MAIN.c以及修改中断处理函数stm32f10x_it.c。

我觉得你的问
题不是如何建立工程,而是如何让一个STM32跑起来,由于STM32
与51差别甚大,上电后需要对时钟以及片上外设进行初始化的配置,
还有中断向量表的映射等。

可以看看STM32不完全手册V2.0等教程。

评论|00
2011-07-27 17:21GONOW|一级
其实用库函数很简单的,只需将你认为有用的库函数文件包括“C"和对
应的”H"文件加入入你的工程中。

你在设计MAIN函数时直接调用就行
了,无需在主函数中声明。

有关函数及其参数的声明在“H"文件中,函
数体的书写在"C"文件中。

你具体要用哪些函数你要仔细的阅读有关的
函数。

我用的时候一般是将对应的文件找开,将函数名我参数直接复制
过去。

评论|00
查看更多其他回答
stm32的相关知识
∙2010-12-07STM32学习13
∙2012-03-19stm32固件函数库怎么下载啊?找不着啊?
∙2011-09-02如何在MDK下建立stm32工程34
∙2011-04-05stm32开发板推荐64
∙2011-09-25请教STM32学习问题!!!!!!!!1
更多关于stm32的问题>>
等待您来回答
∙1回答5关于笔记本电脑屏幕排线的问题…排线的一端接在主板上,可以取下来...∙0回答我的笔记本电脑正好好的连上无线网不能用怎么回事呀!手机也一样不...
∙0回答推荐台笔记本电脑
∙2回答青春期有许多烦恼怎么办
∙1回答现在,大学毕业的都干什么
∙0回答最底下的进程到底是什么,笔记本电脑什么都没有开,加速球现实百分...
∙0回答好烦啊啊啊啊啊啊高人指教美剧真探truedetective哪个应用哪个网站...
∙0回答美团团购真功夫卷的使用时间是2-5点。

7-关门。

那我12点过去可以用吗...∙5回答中国最出名的菜脑筋急转弯
∙1回答华硕x550xi311VC-sl这款笔记本电脑多少钱,用着怎样
∙2回答求一部剧情有意思的美剧
∙0回答您想学习如何借助智能手机、平板/笔记本电脑移动创业吗?
∙0回答教师资格证上半年笔试通过的,是不是只需要申请这次的面试就可以了...∙6回答一个伟大的人和一只伟大的狮子同一天诞生。

有什么关系。

脑筋急转弯∙0回答联想G510笔记本电脑在用CorelDRAWX4软件F2 F3不能缩放没有感兴趣的问题?试试更多等待您来回答的问题>>。

相关文档
最新文档