自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式技术开发

嵌入式技术交流与学习为目标

  • 博客(796)
  • 资源 (17)
  • 收藏
  • 关注

原创 Linux通信IPC随笔

名字: HLS大神 QQ:331908961**功能:Linux内核间任意通信实现**#include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include <unistd.h>#include <string.h>#include <stdio.h>typedef struct MSG

2021-03-26 11:28:26 634 3

原创 嵌入式中C语言小项目的具体实现

大家好,今天主要给大家分享一下,如何使用C语言来实现对应的小项目。

2024-09-30 23:44:40 357

原创 嵌入式linux系统中库函数如何提高效率

动态库(Dynamic Library)是在运行时被加载到内存中的库,它的代码不会被复制到目标程序中,而是在运行时动态链接到目标程序中,因此生成的可执行文件比较小,但是需要依赖外部库文件,如果外部库文件被删除或者改名,程序就无法正常运行。静态库(Static Library)是在编译时被链接到目标程序中的库,它的代码被复制到目标程序中,因此生成的可执行文件比较大,但是运行时不需要依赖外部库文件,具有良好的可移植性和兼容性。工作中总是会用到各种库,比如本地使用静态库,下载源上的动态库;

2024-09-29 23:45:32 452

原创 嵌入式linux系统中Sysfs设备驱动管理方法

sysfs 是非持久性虚拟文件系统,它提供系统的全局视图,并通过它们的 kobiect 显示内核对象的层次结构(拓扑)。每个 kobiect 显示为目录和目录中的文件,目录代表相关 kobject 导出的内核变量。这些文件称为属性可以读取或写入。如果任何已注册的 kobiect 在 sysfs 中创建目录,则目录的创建位置取决于 kobiec 的父项(它也是 kobiect )。这些目录自然创建为 kobject 父项的子目录。这向用户空间出显示了内部对象的层次结构。

2024-09-28 23:45:41 583

原创 嵌入式单片机底层原理详解

单片机启动并不是从main函数开始执行的,而是从启动文件规定的函数开始执行的大部分单片机都会上电自动配置时钟保证单片机能够正常工作寄存器和库函数通过地址这个东西联系在一起,库函数本质就是在操作寄存器本章简单展示了如何查找手册来配置寄存器,且再次强调库函数的本质就是操作寄存器。单片机都会有一个时钟树,时钟树的图可以在编程手册(不是数据表和内核手册)中找到。部分单片机想要工作在高工作频率下,需要设置flash等待时间并打开缓存和预取指令使能。

2024-09-26 22:51:32 2575

原创 嵌入式中CW32多功能测试笔实现

虽然本项目的模拟前端有较多功能,乍一看电路图也较为复杂,但只要将电路图根据功能拆解开,“逐个击破”来分析,还是很容易就能理解的。简单的总结一下就是,模拟前端可以分为信号输入、信号输出、和电流源输出这三个部分,而不同的工作模式,就是通过切换模拟开关来实现这三个部分的切换。

2024-09-26 21:31:07 1764

原创 嵌入式项目开源网站有哪些?

用户可以在该网站上发现各种有趣和创新的产品,包括硬件、电子设备、创客工具和开源项目等。与传统的众筹平台不同,crowdsupply.com还为创造者提供了更多的服务,包括供应链管理、制造支持、物流配送等,帮助他们实现产品从设计到生产的全过程。"hackaday.com"是一个技术社区和博客网站,主要关注电子设备、计算机、硬件和创客等方面的技术内容。该网站上发布了大量有关电子制作、创客项目、开源硬件、编程和创新的文章、教程和新闻。此外,该网站也举办在线活动、竞赛和培训课程,以促进硬件开发社区的发展和创新。

2024-09-24 23:49:47 272

原创 嵌入式linux方向细分工作岗位分析

1、开发和维护Linux系统的板级支持包(BSP),包括启动加载程序、设备驱动、文件系统等。2、负责解决硬件和软件之间的兼容性问题,确保Linux系统在硬件平台上稳定运行。与硬件工程师和软件工程师协作,进行硬件设计和软件开发,以及解决问题和提供技术支持。1、精通C、C++、Shell等编程语言,以及相关的开发工具和环境。2、熟悉Linux内核的架构和运行机制,包括进程管理、内存管理、文件系统熟悉常用的Linux BSP开发工具,如U-Boot、Yocto等。

2024-09-23 22:42:55 525

原创 嵌入式单片机STM32开发板详细制作过程--01

大家好,今天主要给大家分享一下,单片机开发板的制作过程,原理图的制作与PCB设计,以及电子元器件采购与焊接。

2024-09-22 23:40:32 196

原创 嵌入式linux系统中rk3588芯片引脚基本操作

控制器,分别为 RK_GPIO0、RK_GPIO1、RK_GPIO2、RK_GPIO3、RK_GPIO4,在这里分别对应 gpiochip0、gpiochip32、gpiochip64、gpiochip96、gpiochip128 这 5 个文件夹,每一个gpiochipX 文件夹用来管理一组 GPIO。:则指示了 LED 灯的触发方式,查看该文件的内容时,该文件会列出它的所有可用触方式,而当前使用的触发方式会以“[]”符号括起。:该属性文件为只读属性,不能写,用于获取 LED 设备的最大亮度等级。

2024-09-20 21:22:49 793

原创 嵌入式单片机中can总线调试方法

CAN的基本应用不难,如果真正应用在项目中,需要考虑更多的协议处理,例如仲裁。通过CAN的学习,希望大家有数据链路层的概念。以后做项目,每一种通信,最好加上数据链路层,这样可以保证数据传输的可靠性。

2024-09-17 21:17:51 2142

原创 嵌入式DCMI摄像头功能调试方法

DCMI数字摄像头接口是一个同步并行接口,能接收外部8位、10位、12位或14位CMOS摄像头模块发出的高速数据流。可支持不同的数据格式:YCbCr4:2:2/RGB565逐行视频和压缩数据(JPEG)。此接口适用于黑白摄像头、X24和X5摄像头,并假定所有预处理(如调整大小)都在摄像头中执行。

2024-09-17 21:08:19 1077

原创 嵌入式C语言详解与实现

大家好,今天主要分享一下,如何使用嵌入式C语言,才能达到很高的水平,希望对大家有所帮助。

2024-09-16 22:27:48 382

原创 嵌入式单片机程序运行机制,从helloworld说起

如果程序A中引用了文件B中定义的函数,为了A中的函数能正常执行,就需要把B中的函数部分也放在A的源代码中,那么将A和B合并成一个文件的过程就是链接了。在过去的机器里都是把整个程序都加载进入物理内存中,现在一般都采用了虚拟存储机制,即每个进程都有完整的地址空间,给人的感觉好像每个进程都能使用完成的内存。上面是内容用具体的实例说了目标文件内部的组织形式,目标文件只是产生可执行文件过程中的一个中间过程,对于程序是如何运行的还没做讨论,目标文件是如何转变为可执行文件以及可执行文件是如何执行的将在下面的部分中讨论。

2024-09-16 22:10:51 820

原创 嵌入式单片机程序运行基本机理

硬件首先要知道硬件的组成。在前面章节我们说过,芯片包含Flash和RAM。他们虽然不是相同的东西,但是都属于同一个地址空间,32位芯片的地址空间大小是4G。比如ST32,FLASH通常从0X8000000开始,而RAM就从0x20000000开始。高级点的芯片,可能会有外部SDRAM,内核也会为这SDRAM分配一段地址。地址,就是地址,比如你们家的门牌号,酒店的房间号。TODO添加STM32芯片地址映射图。程序程序包含什么?写代码的时候包含函数过程和变量。编译得到的目标文件包含函数过程。

2024-09-15 23:08:38 1384

原创 嵌入式单片机中数码管基本实现方法

数码管是什么?下图就是一个数码管从硬件上个看,其实就是8个LED组合在一起。8个LED应该有16个引脚,但是数码管上只有10个引脚。为什么呢?请看下图:1个LED有两个引脚,要控制LED,1个引脚接控制信号,另外一个引脚接电源或者地(高驱动或低驱动,下同)。那么,当有8个LED,只需要8根IO口控制状态,其他IO全部接到地或者电源即可。当用高驱动时,LED负极全部接到地,这种数码管就叫做共阴极数码管。当用低电平驱动时,LED正极全部接到电源,这种数码管就叫做共阳极数码管。

2024-09-15 21:24:19 1743

原创 嵌入式单片机LCD驱动基本方法

在讨论怎么写LCD驱动之前,我们先大概了解一下嵌入式常用LCD。概述一些跟驱动架构设计有关的概念,在此不对原理和细节做深入讨论,会有专门文章介绍,或者参考网络文档。

2024-09-14 22:17:44 1360

原创 嵌入式单片机代码中bug调试方法

在开发的过程中,会遇到各种各样的问题,只要潜心分析,也一定会找到问题的解决办法。

2024-09-10 11:14:03 979

原创 嵌入式鸿蒙系统开发语言与开发方法分析

可复用的UI单元,可组合其它组件,如上述被@Component装饰的struct Hello。UI描述:声明式的方法来描述UI的结构,例如build()方法中的代码块。

2024-09-10 10:56:36 1390

原创 嵌入式Openharmony系统构建与启动详解

旨在构建统一的驱动架构平台,为驱动开发者提供更精准、更高效的开发环境,力求做到一次开发,多系统部署。为了实现这一目标,OpenHarmony 驱动框架:采用c语言面向对象编程模型构建,通过平台解耦、内核解耦,来达到兼容不同内核,统一平台底座的目的,从而帮助开发者实现驱动一次开发,多系统部署的效果。这个描述至少包含了以下3个关键的信息:

2024-09-08 23:09:52 3121

原创 嵌入式OpenHarmony源码基本原理详解

在3.0版本中,Lite系统(即轻量系统和小型系统)、标准系统各有一套独立的构建入口和上层的构建流程,但在3.2版本中,两者开始互相借鉴,取长补短并实现了融合统一;在3.0 版本中,标准系统的启动流程相对比较简单,但在3.1版本中,则引入了Randisk和TwoStages机制,标准系统的启动流程因此变复杂了,但安全性得到了提升;OpenHarmony 驱动框架的部分数据结构定义和局部的启动流程,在3.1版本中也有了不少调整和重构。

2024-09-08 12:02:53 575

原创 嵌入式OpenHarmony系统的一些特点

大家好,今天主要给大家分享一下,如何使用OpenHarmony,它的一些基本特点。

2024-09-05 23:00:00 169

原创 嵌入式OTG硬件电路分析

大家好,今天主要给大家分享一下,如何使用OTG硬件检测电路,和之前的接口有什么区别。

2024-09-02 20:08:10 1031

原创 嵌入式C语言的指针这样来理解

比如说你要我借给你一本书,我到了你宿舍,但是你人不在宿舍,于是我把书放在你的2层3号的书架上,并写了一张纸条放在你的桌上。需要注意的是,虽然变量名、函数名、字符串名和数组名在本质上是一样的,它们都是地址的助记符,但在编写代码的过程中,我们认为变量名表示的是数据本身,而函数名、字符串名和数组名表示的是代码块或数据块的首地址。( )表示取值操作,整个表达式的意思是,取出地址 0X1000 和 0X2000 上的值,将它们相加,把相加的结果赋值给地址为 0X3000 的内存。有了它我们的生活才更加方便了。

2024-08-31 18:04:59 941

原创 linux系统中USB模块鼠标驱动实现

参考网址:* libusb GIT仓库:https://github.com/libusb/libusb.git* libusb 官网:https://libusb.info/* libusb API接口:https://libusb.sourceforge.io/api-1.0/* libusb 示例:https://github.com/libusb/libusb/tree/master/exampleslibusb是一个使用C编写的库,它提供USB设备的通用的访问方法。

2024-08-31 17:58:21 1683

原创 嵌入式软件开发之状态机与事件驱动分析

状态机是一种程序架构,事件驱动也是一种程序架构,在某些开发场景里面,两者是可以一同合并使用的。生活中有很多事件驱动的例子,上自习瞒着老师偷睡觉就是很生动的一个。我们都是从高中时代走过来的,高中的学生苦啊,觉得睡觉是世界上最奢侈的东西, 有时候站着都能睡着啊!老师看得严,上课睡觉不允许 啊,要挨批啊!有木有!相比而言,晚自习是比较宽松的,老师只是不定时来巡视,还是有机会偷偷睡一会儿的。现在的问题是,怎么睡才能既睡得好又不会让老师发现呢?晚自习是比较宽松的,老师只是不定时来巡视,还是有机会偷偷睡一会儿的。

2024-08-29 12:01:41 404

原创 嵌入式中详解STM32启动文件

栈的作用是用于局部变量,函数调用,函数形参等的开销,栈的大小不能超过内部SRAM 的大小。THUBM 是 ARM 以前的指令集, 16bit,现在 Cortex-M 系列的都使用 THUMB-2 指令集, THUMB-2 是 32 位的,兼容 16 位和 32 位的指令,是 THUMB 的超集。如果我们在使用某个外设的时候,开启了某个中断,但是又忘记编写配套的中断服务程序或者函数名写错,那当中断来临的时,程序就会跳转到启动文件预先写好的空的中断服务程序中,并且在这个空函数中无线循环,即程序就死在这里。

2024-08-29 11:46:37 715

原创 嵌入式RTOS正在缩小与Linux系统之间的差异

而且,现在实时Linux开始集成一些补丁(比如Ubuntu的PREEMPT_RT补丁),能够有效地为大多数实际的低延迟、低抖动工作负载提供服务,同时实现均衡的解决方案,从而减少开销并保持响应能力,最终减少维护成本,并使用有限的资源最大限度地提高。RTOS追求的是轻量级和极致的实时性(Real-time),通常是专为实时应用程序构建的,优先考虑任务执行的确定性和可预测性,使其在医疗、核能或航空航天等关键任务行业中得到广泛应用。在实时系统中,计算的正确性不仅取决于结果的逻辑正确性,还取决于它产生结果的时间。

2024-08-29 11:35:59 304

原创 linux系统中USB模块基本原理分析

大家好,今天主要给大家分享一下,USB设备的发展历程。

2024-08-26 20:16:53 142

原创 嵌入式linux系统中USB设备配置的基本方法

大家好,今天主要给大家分享一下,如何使用USB设备的基本方法。

2024-08-25 21:18:43 194 2

原创 嵌入式单片机中产品菜单设计框架详解

管得太宽 菜单,你就管菜单切换就行了,到了最低一层,也就是实际的测试功能,就不要管了。我想要的却是一个容易维护的菜单结构,至于菜单的代码有多乱多纠结,没关系, 而且,几百上千个菜单,就算用轮询的方法,也不过几百us吧,没关系。酷狗百度一番,找到了两个参考:《基于二叉树的多层的液晶菜单界面设计》 《基于节点编号的通用树状菜单设计方法与实现.pdf》 按照他们的设计方法,鼓捣了一个版本,能用,挺好,但是也纠结。第2个1级菜单有3个子菜单,子菜单是2级菜单,其中第1个子菜单下面又有2个孙菜单(3级菜单)。

2024-08-25 15:18:01 61

原创 嵌入式Keil工具【微库】和【标准库】的对比

C语言标准库,我们经常都会调用,比如:、 、 、 、 、 等库文件。因为针对Arm的嵌入式系统,通常存储(代码)资源相对较小,为了使其能用上标准函数,工程师就针对Arm嵌入式系统,对标准C库进行了优化,以减小代码量。当然,在万不得已的情况下才建议修改原型函数。微库函数也是一种函数,其很多库函数原型在网上都能找到,如果你有特殊需求,可以不用微库,在库函数原型的基础上进行修改。

2024-08-25 14:35:16 354

原创 嵌入式linux内核模块编程底层原理详解

Linux 内核模块被精确地定义为能够动态 根据需要在 kernel 中加载和卸载。这些模块增强了内核 功能,而无需重新启动系统。一个值得注意的例子是 device driver 模块,便于内核与硬件组件交互 链接到系统。在没有模块的情况行的方法倾向于单体内核,需要将新功能直接集成到 kernel 镜像。这种方法会导致更大的 kernel 并且需要 kernel 当新功能出现时,重建和随后的系统重启 期望。

2024-08-25 11:03:54 200

原创 嵌入式C语言中常见的指针和内存异常分享

下面先看malloc 函数的原型: (void *)malloc(int size) malloc 函数的返回值是一个void 类型的指针,参数为int 类型数据,即申请分配的内存大小,单位是byte。比如上面的例子,我们可以说malloc 函数分配的内存块是属于p 的,因为我们对这块内存的访问都需要通过p 来进行。但是我们要知道,assert 宏只是帮助我们调试代码用的,它的一切作用就是让我们尽可能的在调试函数的时候把错误排除掉,而不是等到Release 之后。但是你却无法使用这块大小为0 的内存。

2024-08-22 23:09:14 184

原创 嵌入式C语言中函数宏基本操作方法

综上,在 {} 、 do{...}while(0) 和 ({}) 这三种函数宏的封装方式之中,应尽可能不使用 {} ,考虑兼容性一般选择使用 do{...}while(0) ,当需要函数宏返回时可以考虑使用 ({}) 或直接定义函数。因此,在工程中,一般使用三种方式来对函数宏进行封装,分别为 {} 、 do{...}while(0) 和 ({})。与 do{...}while(0) 相同, ({}) 支持在无花括号且有分支的 if 语句中直接调用。强制调用时必须使用。

2024-08-22 23:03:05 113 2

原创 嵌入式Linux系统中开机自启动方法

在很多嵌入式系统中,由于可用资源较少,常常在系统启动后就直接让应用程序自动启动,以减少用户操作和节省资源。如何让自己的应用程序自动启动呢?

2024-08-18 16:23:59 323

原创 嵌入式中PID算法分析与实现详解

U = Kp * ( 60 - 50 ),假设Kp取值为1,此时得到U执行器的输出值是10,结果当你执行器输出后,发现汽车一下变成了35Km/h,此时U2 = Kp * (35 - 50),此时得到U执行器的输出值是-15,结果当你执行器输出后,发现汽车变成了55Km/h,由于惯性和不可预知的误差因素,你的汽车始终无法达到恒定的50km/h。乘上微分系数D,大家叫做KD,则当执行器第1次调节后有了第1次的误差,第2次调节后有了第2次的误差,则结合P系数。积分,实际上是对误差的积分,也就是误差的无限和。

2024-08-18 16:20:21 253

原创 嵌入式开发应该具备的思维方式

他们理论知识雄厚,但缺乏电路等相关的知识,在嵌入式里学习需要再学习一些具体的知识,比较难走。造成代码深层次的问题。虽然没有做过产业调查,但从我所见和所招聘人员,从事嵌入式行业的工程师,要么缺乏理论知识,要么缺乏实践经验。但是这个还是不能很好移植的一个代码,因为编译器一优化,就有可能造成这两个延时循环的丢失。这样,让CPU有时间去执行中断的代码,从而避免了频繁关闭中断造成的中断代码执行不及时,产生的信息丢失。在中国,嵌入式编程的朋友很少是正儿八经从计算机专业毕业的,都是从自动控制啊,电子相关的专业毕业的。

2024-08-15 23:27:43 208

原创 嵌入式软件工程师如何做到独当一面分享

需求转换的核心就两个字“沟通”,开发成本最大的浪费是需求浪费,这分为两方面,一方面需求方,无效需求或者需求变动带来的研发成本浪费,另一方面是需求方和研发方需求传递不一致的浪费,简单来说就是没有充分沟通,导致研发所做的功能和需要方需要的功能不一致,导致返工的现象。一般来说,对我个人而言软件设计,思考最优实现方式要占用30%的时间,撸码占用50%,测试和完善20%,当然,这个不能一概而论,对于新书来说思考的时间短点,关键点在留够测试和完善的时间,测试和完善的时间越长,项目的成功几率就越大;

2024-08-15 23:19:49 64

原创 嵌入式Qt5编译qmqtt库使用MQTT协议连接华为云IOT

产品创建完成之后,点击进入产品详情页面,翻到最下面可以看到模型定义。模型简单来说: 就是存放设备上传到云平台的数据。先点击自定义模型。再创建一个服务ID。接着点击新增属性。这里就创建一个温度的属性。我们这个设备用来测温的。cppIP地址:117.78.5.125端口号:1883订阅主题:$oc/devices/65697df3585c81787ad4da82_stm32/sys/messages/down。

2024-08-15 23:09:28 98

106-多功能电子医药盒设计

详细的功能实现

2023-06-27

图书馆管理系统-java实现

利用java实现图书管理的功能

2023-06-25

利用Matlab自动生成代码方法

1、优控VCU使用注意事项补充说明 2、文档资料

2023-06-25

32.2015四轴飞行器.zip

32.2015四轴飞行器

2023-06-23

31.2007年赛题跷跷板.zip

31.2007年赛题跷跷板

2023-06-23

30.2009年声音引导系统.zip

30.2009年声音引导系统

2023-06-23

29.2013年简易旋转倒立摆.zip

29.2013年简易旋转倒立摆

2023-06-23

26.stm32+瑞萨四轴.zip

26.stm32+瑞萨四轴

2023-06-23

28.stm32仪器仪表.zip

28.stm32仪器仪表

2023-06-23

25.msp430小车红外遥控.zip

25.msp430小车红外遥控

2023-06-23

23.频谱分析80Mhz~100Mhz频谱分析仪(一等奖).zip

23.频谱分析80Mhz~100Mhz频谱分析仪(一等奖)

2023-06-23

22.风摆.zip

22.风摆

2023-06-23

16.光伏并网发电模拟装置.zip

16.光伏并网发电模拟装置

2023-06-23

18.简易数字频率计设计_一等奖.zip

18.简易数字频率计设计_一等奖

2023-06-23

15.基于STM32 四轴飞行器控制系统.zip

15.基于STM32 四轴飞行器控制系统

2023-06-23

10.基于stm32的平衡小车.zip

10.基于stm32的平衡小车

2023-06-23

11.基于51单片机的智能小车.rar

11.基于51单片机的智能小车

2023-06-23

9.简易风洞及控制系统(主控板+供电驱动).zip

9.简易风洞及控制系统(主控板+供电驱动)

2023-06-23

7.开源基于STC15W4K61S4的微型四旋翼.zip

7.开源基于STC15W4K61S4的微型四旋翼

2023-06-23

8.直流风机风力摆控制系统.zip

8.直流风机风力摆控制系统

2023-06-23

c语言教工工资管理系统.zip

c语言教工工资管理系统

2024-04-04

c语言华容道源码.zip

c语言华容道源码

2024-04-04

c语言盒子接球游戏源码.zip

c语言盒子接球游戏源码

2024-04-04

c语言黑白棋ai游戏源码.zip

c语言黑白棋ai游戏源码

2024-04-04

c语言地空对战游戏.zip

c语言地空对战游戏

2024-04-04

c语言打字母游戏源码.zip

c语言打字母游戏源码

2024-04-04

c语言对自己电脑系统测试.zip

c语言对自己电脑系统测试

2024-04-04

C语言标准化PPT课件.rar

C语言标准化PPT课件

2024-04-04

电机+嵌入式详细解说+各个电机分析与说明,包括常见的直流电机、异步电机、同步电机等

电机是一种将电能转化为机械能的设备,广泛应用于各个领域,如工业、交通、家电等。它是现代社会不可或缺的重要装置之一。

2024-04-04

C语言实现俄罗斯方块游戏

1、完整的代码实现 2、详细的操作步骤

2024-04-04

C语言项目练习.zip

C语言项目练习

2023-06-30

19.小车循迹.rar

19.小车循迹

2023-06-30

16.小车测试程序.zip

16.小车测试程序

2023-06-30

11、电源资料.zip

11、电源资料

2023-06-29

04、电子测量.zip

04、电子测量

2023-06-29

03、放大器.zip

03、放大器

2023-06-29

01、信号电路.zip

01、信号电路

2023-06-29

02、检波滤波.zip

02、检波滤波

2023-06-29

人工智能鸿蒙系统中hap文件生成与安装方法

1、基于鸿蒙系统的人工智能的控制与实现

2023-06-27

出租车计价器设计资料课程设计与实现

电子设计大赛

2023-06-27

空空如也

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

TA关注的人

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