自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

搜索微信公众号(airX嵌入式)获取更多知识

一个分享实际嵌入式项目开发的公众号

  • 博客(148)
  • 资源 (9)
  • 收藏
  • 关注

原创 基于 Keil MDK 移植 RT-Thread Nano RTOS到华大半导体HC32F030J8TA

本文介绍如何基于Keil MDK开发环境移植RT-Thread NanoRTOS实时系统到华大半导体hc32f030j8ta,并以一个基于HC32F030J8TA芯片的LED基础工程作为示例进行讲解。(源码文档及相关资料可通过文章最后地址获取,含高清pdf版)

2021-12-20 13:44:26 2059 1

原创 基于stm32f103的LM6029-12864液晶屏开发(代码资源地址在最后)

《《《《《正文》》》》》《前言》本文主要介绍128x64点阵液晶屏的开发,本文是基于拓普微LM6029AC液晶模块显示屏开发的,兼容12864cog HFG12864-438液晶屏,驱动芯片为ST7565R ;通信串口采用4SPI;《液晶模块》首先来区别液晶模块和驱动芯片;驱动芯片:其实我在《数码管是如何亮起来的?跟液晶屏又有什么关系?》这篇文章提过,因为128x64的com口以及seg口过多,如果使用单片机IO口直接驱动太费IO资源,二来IO口驱动能力也未必够;因此设计..

2021-11-05 10:17:49 1784

原创 手把手教你开发基于单片机的wifi通信的物联网项目(远程灯控制)

《《《《《正文》》》》》《前言》本文主要介绍开发一个基于单片机的wifi通信远程灯控制的方法,单片机只需支持UART通信即可,以实现最简单的远程控制开关、远程控制亮度,配网后,只需手机联网就可控制联网设备;本文的wifi模块是基于涂鸦智能的wifi模块,主芯片使用STM32F103C8T6;wifi模块与主芯片使用最基本的UART串口实现通信;《WIFI模块申请》1、登入涂鸦智能loT平台;平台网址:https://www.tuya.com/cn/2、...

2021-05-17 13:41:25 4706 8

原创 定义结构体的4种方法

《《《《《正文》》》》》《方法一》先定义结构体类型,再定义结构体变量:structstudent{charno[20];//学号charname[20];//姓名charsex[5];//性别intage;//年龄};structstudentstu1,stu2;此时stu1,stu2为student结构体变量。《方法二》定义结构体类型的同时定义...

2021-05-17 13:19:57 1720

原创 STM32F103之脉冲宽度调制(PWM)模块开发(含呼吸灯实例源代码)

《《《《《正文》》》》》《加载库文件》《硬件设计》看手册可以知道:* TIM3 CH1(PWM1) -> PA6* TIM3 CH2(PWM2) -> PA7* TIM3 CH3(PWM3) -> PB0* TIM3 CH4(PWM4) -> PB1《软件设计》设计4路PWM控制的LED;1、初始化函数,这里需要注意的是下面这个配置项:TIM_...

2021-05-17 13:17:50 1280

原创 STM32F103之时基中断(TIM)模块开发

《《《《《正文》》》》》《前言》定时器在嵌入式中的作用是应该算得了是顶梁柱了,可以用出来产生PWM、可以原来输入捕捉、可以用来计时等等;今天我们来说说定时器的定时功能,就是用定时器产生一个系统的时基,使代码实现能够实现时间片的轮询;《加载库文件》1、按下图步骤加载TIM库文件《软件设计》时基的TIM模块编程流程图:一、中断配置void NvicConfig(void){ NVIC_InitTypeDef NVIC_InitSt...

2021-05-17 13:15:28 1163 4

原创 单片机中断的基本概念

《《《《《正文》》》》》《中断作用》 1、实现实时处理。 2、实现分时操作。 3、进行故障处理。 4、待机状态的唤醒。单片机嵌入式系统的应用中,为了减少电源的功耗,当系统不处理任何事物,处于待机状态时,可以让单片机工作在休眠的低功耗方式。通常,恢复到正常工作方式往往也是利用中断信号来唤醒。《中断处理过程》中断系统中,MCU正常情况下运行的程序称为主程序,把产生申请中断信号的单元和事件称为中断源,由中断源向MCU所发出的申请中断信号称为中断请求,MCU接受中断...

2021-05-17 13:13:32 2672 1

原创 软复位操作《Cortex®-M0+等内核通用》

《《《《《正文》》》》》软件复位就是用一系列指令来模仿硬件复位功能。现在arm越来越强大,就连苹果macbook都用上了arm架构,下面分享基于arm内核的软件复位的方法。只要基于Cortex®-M0+、Cortex®-M3等均可直接调用下面2个函数实现,至于函数名是否一样,需要自己判断,一般在core_cm3.h可以查找到。下面这个就是华大HC32F系列单片机的复位函数,在自己的内核头文件中。《方法》NVIC_SystemReset()函数用来复...

2021-05-17 13:12:02 2762 1

原创 代码对比不同时必备软件Beycomps(附破解版资源)

《《《《《正文》》》》》Beyond Compare可以很方便地对比出两份源代码文件之间的不同之处,相差的每一个字节用颜色加以表示,查看方便,支持多种规则对比。Beyond Compare选择最好的方法来突出不同之处,文本文件可以用语法高亮和设置比较规则的方法进行查看和编辑,适用于用于文档、源代码和HTML。用于代码对比:用于hex文件对比:资源地址:链接:https://pan.baidu.com/s/1nstOSx-X9kt-2V9H96...

2021-05-17 13:09:27 868

原创 STM32F103之systick延时(SYSTICK)模块开发

《《《《《正文》》》》》建议先看SYStick的原理请看:一文透析SYSTICK的寄存器下面做一个基于systick的延时模块开发:​第一步:当然是时钟的选择,配置函数在misc.c中:/** * @brief Configures the SysTick clock source. * @param SysTick_CLKSource: specifies the SysTick clock source. * This parameter can be ...

2021-05-05 11:04:36 936

原创 一文透析SYSTICK的寄存器

《《《《《正文》》》》》《什么是systick?》这是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。它是集成在内核里,并不是外扩的功能模块,因此它具有很高的通用性;《systick的作用》在单任务引用程序中,因为其架构就决定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时,就会牵连到后续的任务,进而导致整个系统崩溃。要...

2021-05-05 11:02:09 1034

原创 一文搞定数码管的软件开发(源代码获取见底部)

《《《《《正文》》》》》​建议先看数码管的显示原理这篇文章:数码管是如何亮起来的?跟液晶屏又有什么关系?《硬件设计》4个Com ,8个seg,共阴极设计方案!seg0-seg7对应a、b。。。f、g、dp(小数点)。《软件设计》一、宏定义COM 和SEG的输出操作 //需用户配置///**************************************//此处调用GPIO控制函数头文件#include "gpio.h" ...

2021-04-30 15:15:12 930 1

原创 数码管是如何亮起来的?跟液晶屏又有什么关系?

《《《《《正文》》》》》​《显示原理》数码管是由多段发光二极管排布而成的,而其中的发光二极管显示原理与常规的LED点亮熄灭没有区别,一般的一个数码管由7段发光二极管构成,而8段数码管也只是多了一段小数点,其他基本一样,如下图;所以一个数码管,其实就是7段或者8段独立的LED组成的,通过软件控制每段LED来组合显示数据。《SEG口的共阳/阴极》说到LED的控制,软件会根据LED硬件的设计在点亮LED的电平上有所不同,比如下图LED电路:LED的阳极上拉VDD电压,则点亮L...

2021-04-29 19:17:55 1812

原创 SPI的CPOL(时钟极性)、CPHA(时钟相位)的意义

《《《《《正文》》》》》为什么单独拿这个来说,是因为这个很重要,往往只要告诉你是SPI,以及这个2个参数,你就要知道怎么写通信代码了!这样才是一个合格的spi程序员。我们知道,SPI总线上的数据什么时候获取有效是根据CLK的变化沿来决定,但一次CLK变化沿是有2个时间点的,因此需要双方先规定选择哪个变化沿,包括CLK的起始电平,所以这个是非常重要的东西;SPI 的工作时序模式由 CPOL(Clock Polarity,时钟极性)和 CPHA(Clock Phase,时钟相位...

2021-04-28 09:54:44 4049

原创 5个函数搞定IO口模拟SPI通信

《《《《《正文》》》》》添加模块的第一件事当然是要知道支持什么通信,上面就是一个支持SPI的模块,手册中都会有时序图,包括一些参数的要求,这里只做SPI的编程思路,以下代码主要提供一个编程思路;拿到这个波形时序图就基本可以开始写了;确定CPOL=0、及CPHA=1;即CLK极性为低,第二个CLK时钟沿变化采样数据;《初始化IO函数》void BSP_SPI_Init(void){ Gpio_InitIO(SPI_NSS_GPIO,SPI_CS_PIN,...

2021-04-28 09:53:54 2316

原创 一文搞懂SPI的传输时序

《《《《《正文》》》》》《SPI概念》SPI(Serial Peripheral Interface,串行外设接口)是一种高速、全双工、同步通信总线,常用于短距离通讯,主要应用于 EEPROM、FLASH、实时时钟、AD 转换器、还有数字信号处理器和数字信号解码器之间。SPI 一般使用 4 根线通信(当然也有3根的,本质上没有区别,主要区别在于时序组合的意义不同),如下图所示: MOSI –主机输出 / 从机输入数据线(SPI Bus Master Output/Slave In...

2021-04-28 09:53:01 2314

原创 使用IO口模拟PWM设计呼吸灯

《《《《《正文》》》》》《硬件设计》控制灯的IO口接芯片即可;《软件架构》《软件设计》我的呼吸灯功能由2个函数实现,一个函数是IO模拟PWM产生波形;另一个函数是控制占空比的改变快慢及大小;他们之间用一个可更改的占空比变量联系;可更改的占空比变量:volatileuint16_tpwm_duty=0u;//占空比1、设计IO模拟PWM波形函数该函数需要被周期调用,这样是为了可以对时间进行精确的计时,从而实现对占空比的...

2021-04-26 11:13:09 2346 6

原创 关于PWM的一些事

《《《《《正文》》》》》《PWM概念》PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%,下图为占空比25%的波形;《实现PWM的方法》1、利用IO模拟产生PWM波形。这个就是利用软件中的时...

2021-04-26 11:11:53 787

原创 STM32F103调试串口(USART)模块开发(内含Printf重定向函数说明及模块代码资源)

《《《《《正文》》》》》​《前言》基于UART的串口在实际项目中的应用相当广泛,包括wifi、can、lin等均可使用uart进行通信,方便且成本低;而uart串口功能不仅仅体现在产品使用功能上,在开发调试阶段更是一个必不可少的调试助手。今天就来构建一个基于uart的调试串口功能模块;开发需求:使用stm32f103的usart模块开发一个具有发送任意字符串的调试串口功能的模块;相关代码获取地址:https://pan.baidu.com/s/1zyrOF18W...

2021-04-17 21:27:45 2230 2

原创 STM32F103之指示灯(LED)模块开发(大结局献上流水灯视频)

《《《《《正文》》》》》《硬件设计》原理图:GPIO引脚 LED1 PA11 LED2 PA12 LED3 PB9 LED4 PB8 《加载GPIO库文件》1、按下图步骤加载GPIO库文件(环境搭建已经写过了,这里不多说明)2、这里多说几句,打开stm32f10x_gpio.h,看里面的全局函数。学点英语,看全局函数的命名你都能知道函数的作用了,这是一个使用库函数的技巧。《软件设计》...

2021-04-16 09:25:47 1167

原创 谈谈内部Flash模拟eeprom的一些问题

《《《《《正文》》》》》《FLASH的缺点》说到flash大家可能更加熟悉eeprom,典型的有24Cxx,eeprom的操作没有什么限制,想写就写,想读就读,不用擦除,数据都可以覆盖,而且支持字节操作,一般的擦写次数都达到了百万级别,下面是24Cxx的参数:而内部flash的操作限制就多了,写操作之前必须擦除操作,擦除操作也是有最小单位限制的;flash的擦写次数一般很少,而且因为是块擦除,擦除也很耗时间,例子参数如下图:《FLASH的操作规则》...

2021-04-14 17:33:59 1220

原创 分享3种bootload的思路方法

《《《《《正文》》》》》《前言》自己曾经的一个车上can总线的项目,因为是项目前期,客户也只是要几个demo件,于是我为了速战速决,做了个不带bootload的样件,没想到的是,客户要了300多的样件,当时发完货,我就知道完了,果不其然,几个月后,出现了一些需求的对接错误及更改,别人主机bootload在线就可以升级,我的没做bootload,于是我被派出去烧程序了!好在那次的工程车没有发往全国各种,不然真的全国飞去烧程序了!在实际项目开发中,因功能更改或bug修正等原...

2021-04-12 17:59:10 3060

原创 别再用Keil看代码了,分享一款必备的代码浏览器Source Insight(内附资源下载)

《《《《《正文》》》》》​《Source Insignht》最近发现有些初入嵌入式的攻城狮看代码是用IDE看的,例如在Keil里看,是不是很难受?!费神、费时还健忘;不过话说回来,当年我入门的时候就是这么看的,也算走了几个月的弯路;所以写这篇给初入者,让攻城狮在看代码的路上少走点弯路;今天分享一款浏览代码的必备神奇,Source Insignht代码浏览器;当然它的功能比你想象的强大,牛逼的人是可以用它写代码,分析软件架构的;而今天我们只把他用来看全代码。《资源下载》百度...

2021-04-12 17:56:36 2044

原创 UART\串口\TTL\RS-232\RS-485的区别

《《《《《正文》》》》》《串口》串口是指物理上(硬件)的接口形式,就像USB接口,以及线下很流行的type-C接口,所以它是一个遵循某一类似通信协议的统称,UART、TTL、RS232、RS485都遵循同一类似的通信协议,就统称为串口。《UART》UART全称是通用异步收发器(Universal Asynchronous Receiver/Transmitter)。它是一个用于收发数据的集成逻辑电路,相当于一个电路模块,能嵌入在芯片里拥有自己的功能模块,所以UART是指一个能...

2021-04-05 11:50:15 850

原创 嵌入式C语言优化技巧

《《《《《正文》》》》》《变量类型》不同类型的数据生成的代码长度会不同,变量类型范围越小自然运行速度越快,占用的内存也会越小。所以能定义短类型的变量就不要定义长类型的变量,比如能用char定义就不要用int定义了;还有能不用float就不用float类型变量;当然这些前提是你的数据类型够用;再则变量的赋值不要超过变量的赋值,C编译器一般不报错,程序却能正常的运行,这个问题就很难查了。​《避免使用标准库》虽然标准库能加快开发进度,但是因为标准库是考虑到用户所有可能情况所开发的代码...

2021-04-04 11:42:51 790

原创 联合体union能解决什么问题?

《《《《《正文》》》》》《结构体的不足》在C语言中,如果要你描述一辆车的属性,最快最简洁的方法就是构建结构体:struct car_info{char*logo;//品牌 long country; //国家intprice; //价格chartype;//类型};如上定义的结构体就可以很方便的描述一辆车的信息,而且多辆车的话只需新增一个car_info定义的变量而已,方便且简洁明了!如果后续还增加车的属性的话,只需在结构体...

2021-04-03 14:37:25 768

原创 嵌入式程序跑飞的几个原因

《《《《《正文》》》》》作为嵌入式程序员,我想程序跑飞应该不陌生吧?!尤其在前期开发调试阶段,程序九重天都能飞!而且跑飞很难查找原因,基于程序跑飞的原因复杂且五花八门,我也只能分享几个自己常常遇到的跑飞的原因,也当提供排查跑飞的思路方向!《看门狗时间太短》有些底层IDE配置生成的的工程可能默认看门狗开启,且时间很短,往往满足不了我们初始化阶段的时间或者while死循环的最长周期,导致复位。《带while的条件》如果在程序中while某个条件,比如外部状态、或者变量,...

2021-04-03 09:13:29 1280 3

原创 开漏输出和推挽输出的区别?

《《《《正文》》》》》《理解三极管的原理》如下图,以NPN三极管为例:它是一种电流控制型元器件,即基极B的输出输出电流可以实现对元器件的控制。所以可以进一步理解为基极B为控制端,集电极C为输入端,发射极E为输出端,这里的输入输出指电流方向!当控制端(基极B)有电流输入时,就会有电流从输入端(集电极C)流入,并且从输出端(发射极E)流出,这样就起到了电流控制元器件的效果!如下图(红色为电流方向):而PNP管正好相反,当有电流从控制端流出时,就会有电流从输入端流...

2021-04-01 13:09:53 1959

原创 Beycomps下载方法

链接:https://pan.baidu.com/s/1nstOSx-X9kt-2V9H96OQJA关注公众号,发送1234获取提取码!

2021-04-01 08:20:19 821

原创 source insight V4 下载方法

链接:https://pan.baidu.com/s/14Rw55O9SV09oG2TFNqqQVA关注公众号,发送1234获取提取码!

2021-04-01 08:15:59 728

原创 ST-LINK官方驱动下载方法

链接:https://pan.baidu.com/s/1grhD_JzrMKzymsiJpUxrrg关注公众号,发送1234获取提取码!

2021-03-31 20:25:33 1486 1

原创 嵌入式提高CPU利用率的编程方法(以按键消抖为实例)

《《《《《正文》》》》》最初,我在按键消抖软件策略上的实现方法是获取按键电平后,延时一段时间后,再去判断按键电平,如果2次电平相同就确定为消抖成功,最后的电平就可作为判断按键操作的依据。大致伪代码如下: void main(void) { Key_Init(); //底层初始化 while(1) { KeyIO_1 = GetKeyIO(); delay_ms(100); //延时50ms函数 K...

2021-03-30 20:14:31 939

原创 Keil.STM32F1xx_DFP.1.0.5.pack获取方法

链接:https://pan.baidu.com/s/130HpzbGCWMQ_f6mPbPomlw关注公众号,发送1234获取提取码!

2021-03-29 19:17:12 3452 7

原创 裸机系统用前后台系统还是轮询系统?

《《《《《正文》》》》》轮询系统==》就是在死循环里顺序的做各种事情!大概代码如下图1-1;这个适用于只需顺序执行事务且不需要外部事件来驱动事务的系统,比如仅仅实现LED翻转的系统,使用轮询系统来编程会很完美!图1-1intmain(void){ //硬件相关初始化 HardWareInit(); for (;;) { //处理事情1 Something1(); //处理事情2 ...

2021-03-29 11:09:50 868

原创 KIEl的kengen获取方法

链接:https://pan.baidu.com/s/1Y7BNfaUzojill_v8_OAT2A关注公众号,发送1234获取提取码!

2021-03-28 23:19:55 740

原创 Keil5.26获取方法

链接:https://pan.baidu.com/s/1vz6UjCqh4gR1-wJmsRNeeA关注公众号,发送1234获取提取码!

2021-03-28 23:01:22 849

原创 先学STM8,还是先学STM32?

《正文开始》声明:本人是偏软件的,所以以下给出的分享是偏软件的角度。只想看总结的话就跳到最后! 写这篇文章的灵感来自于因为最近全球芯片紧缺,公司很多产品的芯片都拿不到,没的办法,只能启用国产的,这就涉及到底层移植的工作,去年12月到现在,我一直在弄移植老产品到国产芯片上,目前还在移植,已经5个项目了,这个工作难就难在底层的配置,那跟今天的问题有什么关系?往下看!首先不管先学哪个,你最终的目的肯定不是仅仅局限于STM,而是往后市场上千万芯片中被你老板选中的那款芯片...

2021-03-28 17:28:31 925

原创 教你如何快速了解一款芯片的时钟系统

时钟在芯片运行中的地位如同心脏在人体中的地位。所以好代码的前提自然需要一个配置正确的时钟!时钟乱了,代码九重天都能飞上去!但是一款芯片的时钟系统是复杂的,我们需要时间去了解,尤其在涉及到带睡眠唤醒的产品,时钟在这个工程中的操作尤为重要,弄不好就醒不过来了!或者时钟错乱等都会发生。今天分享如何快速的了解一款芯片的时钟系统,那就是看时钟图!既然看图,就要对图符号要了解!下面来了解一下,以下并不是死规定,只是大部分适用;1、表示外部时钟...

2021-03-25 15:28:35 1010

原创 比特率和波特率的区别

(模块全代码获取方式,关注微信公号,发送switch)关注微信公众号 (airX嵌入式),获取更多项目经验!1.比特率  比特率(bitrate)又称传信率、信息传输速率(简称信息速率,informationrate)。其定义是:通信线路(或系统)单位时间(每秒)内传输的信息量,即每秒能传输的二进制位数,通常用Rb表示,其单位是比特/秒(bit/s或b/s,英文缩略语为bps)。  在二进制系统中,信息速率(比特率)与信号速率(波特率)相等,例如,当系统以每秒50个二进制符...

2021-03-24 13:25:20 887

原创 图文通透极其广泛的UART

(模块全代码获取方式,关注微信公号,发送switch)关注微信公众号 (airX嵌入式),获取更多项目经验!一、何为UART通用异步收发器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行、异步、全双工的通信协议,在嵌入式领域应用的非常广泛。Can、lin、嵌入式wifi模块等都可以使用uart进行通信。其实就是2根线,利用高低电平的时序一根收,一根发进行双向通信!当然地要接的!所以应该是3线!二、通信原理.

2021-03-24 13:22:16 928

基于Renesas芯片的TH06C温湿度的嵌入式开发pdf_V1.0.zip

最近在开发汽车上的胎压监测系统,里面涉及到无线、传感器等数据的采集,这里就准备个简单的、其中的一个功能模块:温湿度的采集。基于瑞萨的R7F0C004M2DFB芯片,芯片自然有其他的功能,温湿度只是其中一个!温湿度传感器用的是TH06C

2020-03-04

基于 Renesas 芯片的 TH06C 温湿度的嵌入式开发代码工程

基于 Renesas 芯片的 TH06C 温湿度的嵌入式开发,完整的工程代码!配有详细的博客代码解析!

2020-03-04

LIN项目代码 .rar

因为当时没人要 所以把pdf弄丢了 现在看到很多人要 我就去找了一下我的项目代码 里面的LIN代码模块化集成度高 是量产代码 是用在上汽的车上 是作为从节点的 代码结果一系列的测试 稳定性高 lin兼容性也高 睡眠是根据汽车要求 低于100uA的 各位 不好意思 现在才发  请自行下载 有问题请留言 虽然我不一定回 哈哈

2020-02-22

AP4_for_RL78_EC__V10500.exe

AP4是一个独立软件工具,根据用户设置自动生成外围模块驱动程序。 可选择编译工具(编译器) 。 AP4为编译工具产生适合的外围模块控制程序,还为集成开发环境生成工作空间文件和项目文件。 AP4_for_RL78_EC__V10500.exe ,瑞莎 外围电路驱动生成程序 AP4 for RL78_EC V1.05.00

2020-01-15

FSCaptureSetup.rar

FSCaptureSetup截屏软件下载 其中含有注册码!

2019-10-21

keil注册机

keil 注册机 MDK 打开里面就会有运行程序 keil 注册机 MDK 打开里面就会有运行程序

2018-11-04

iphone自定义铃声

自定义自己的iphone铃声pdf教程文档,相关博客在我的博客文章里有

2018-03-03

自定义iphone铃声

iphone铃声自定义教程word文档,在博客里有相应博客文章!!!

2018-03-03

STM32_I2C_EPPROM

基于stm32的I2C的epprom程序文档

2017-05-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除