自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (6)
  • 收藏
  • 关注

原创 STM32F0 硬件I2C读取AT24C64

AT24C32、AT24C64都是大容量的,寄存器地址要用16位如果I2C总线上只挂一个芯片,直接把写保护、A0、A1、A2全部拉低即可I2C的读可以跨页,但是不能跨块,AT24C08等小容量的块大小是256K字节,AT24C64的块大小是8192字节,而且读的字节数越多,中间出错的概率也变大了,因此不建议一次性读取太多的字节数。I2C的写是不能跨页的,因此要做到忽略硬件页的影响,需要自己设计算法,把应用层的一次写,在底层分为多次写来实现。

2023-01-08 10:30:38 2239

原创 练习时长两年半的软件工程师

练习用的程序

2022-10-15 22:27:23 438

原创 SVN客户端使用详细

SVN的使用,全功能讲解

2022-08-14 22:35:04 1098

原创 用VSCode做STM32项目遇到的问题

vscode下做STM32项目遇到的问题,比如无法跳转到函数定义

2022-08-13 18:28:44 2478 2

原创 01 顺序表

顺序表的实现,增删改查等操作

2022-08-09 21:03:45 115

原创 计算机网络9 无线网络和移动网络

无线局域网WLAN无线局域网WLAN(wireless local area network)提供了移动接入的功能,由于手机普及率高,通过无线局域网接入互联网成为当今最常用的上网方式便携站:便于移动的,但是便携站工作时位置固定不变移动站:不仅能移动,而且可以在移动的过程中通信, 移动站一般使用电池供电无线局域网的组成无线局域网可以分为两类有固定基础设施的:有预先建立起来的、能够覆盖一定地理范围的一批固定基站无固定基础设施的IEEE 802.11对于有固定基础设施的无线局域网,IEE

2021-01-07 19:05:25 3563 1

原创 计算机网络8 互联网上的音视频服务

概述技术的进步,使得许多用户开始利用互联网传送音频、视频数据这种音频、视频常称为多媒体信息多媒体信息的两个特点如下:多媒体信息的信息量很大:传输需要的码率高,因此必须采用各种信息压缩技术传输多媒体数据(边传输边播放)时,对时延和时延抖动有较高的要求传统模拟的多媒体信号要经过数字化,才能在互联网上传送传输多媒体信号的分组,发送间隔都是恒定的,这样的分组是等时的(isochronous),等时分组进入互联网的速率也是恒定的传统的互联网本身是非等时的,因为每一个分组都是

2020-12-31 13:14:27 2562

原创 计算机网络7 网络安全

网络安全问题概述计算机网络面临的安全性威胁计算机网络的通信面临两大类威胁,即被动攻击和主动攻击被动攻击:攻击者从网络窃听他人的通信内容,通常把这类攻击称为截获。攻击者只是观察和分析数据,而不干扰信息流。这种攻击又被称为流量分析(traffic analysis)主动攻击:篡改:攻击者故意篡改、中断、伪造网络上传送的报文恶意程序:种类繁多,对网络安全威胁较大的主要有以下几种计算机病毒:通过修改其它程序来把自身或者变种复制进去而完成的计算机蠕虫:通过网络的通信功能,将自身从一个结点发送到另

2020-12-25 14:00:44 2147

原创 计算机网络6 应用层

域名系统DNS域名系统概述域名系统DNS(domain name system)是互联网使用的命名系统,用来把便于人们使用的机器名字转换为IP地址。域名系统很明确地指明这种系统是用在互联网中的连接在互联网上的主机不仅有IP地址,而且还有便于用户记忆的主机名字,域名系统DNS能够把互联网上的主机名字转换为IP地址在1983年互联网开始采用层次树状结构的命名方法,并且使用分布式的域名系统DNS互联网的域名系统DNS被设计成一个联机分布式数据库系统,并采用客户服务器方式。DNS使大部分名字都在本地进行解

2020-12-17 15:52:01 1754

原创 计算机网络5 运输层

重要概念运输层为相互通信的应用进程提供逻辑通信端口和套接字的意义无连接的UDP的特点面向连接的TCP的特点在不可靠的网络上实现可靠传输的工作原理停止等待协议和ARQ协议TCP的滑动窗口、流量控制、拥塞控制、连接管理运输层协议概述进程之间的通信运输层向上面的应用层提供通信服务通信的实质是两台主机中的应用进程交换数据运输层提供应用进程之间的逻辑通信运输层具有复用和分用功能,使得主机上所有进程都能使用同一个运输层协议收发数据网络层为主机之间提供逻辑通信,而运输层为应用进程之

2020-12-14 17:04:50 614

原创 海思UVC调试

前言本文记录一下这几天调试海思UVC的心得,本次使用的芯片及SDK是海思3531DV100,最终的结果是两路USB摄像头接入海思的两个USB(不同的root hub),HDMI输出四分屏,显示两个摄像头的画面参考过的文章如下:https://blog.csdn.net/zhenglie110/article/details/89360312https://blog.csdn.net/zhenglie110/article/details/89360423https://blog.csdn.net

2020-12-02 10:24:50 3373 2

原创 STM32硬件I2C的一点心得(AT24C32C和AT24C64C)

前言网上有些人说STM32的硬件I2C使用起来有问题,我用起来一点问题都没有,下面大致说一下最近做这个的心得CubeMX设置软件采用最新的CubeMX和SDK生成,芯片型号STM32F107RC首先时钟使用常规的72M,这部分配置很多芯片都一样I2C的配置也是普普通通,保持默认就好,不使用DMA传输I2C初始化代码以下代码由CubeMX自动生成,在用户代码区(USER CODE)添加了解除写保护WR的代码,除此之外没有其它修改void MX_I2C1_Init(void){ hi

2020-11-24 14:15:19 7971 3

原创 海思3531d下的tlv320aix3101音频驱动及sample

前言目前一直在使用海思的hi3531dv100芯片,声卡已经调过tlv320aic3254和tlv320aix3101官方SDK中 mpp/extdrv中提供了一个文件夹tlv320aic31,但是部分设置并不是很完美,因此根据自己硬件的不同,做了部分调整下载连接https://download.csdn.net/download/whitefish520/13010235硬件连接左边是I2S和I2C右边是输入和输出声卡驱动/* * * Copyright (c) 2006 Hisi

2020-10-22 13:31:45 6448

原创 计算机网络4 网络层

网络层提供的服务网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报(datagram)服务,数据报也就是常说的分组网络在发送分组时不需要提前建立连接,每一个分组(IP数据报)独立发送,与前后分组无关(不进行编号),因此可能会有出错、丢失、失序、重复等问题如果进程需要可靠通信,则由运输层负责处理(包括差错处理、流量控制等),采用这种思路,网络造价大大降低、运行方式灵活,适用多种应用虚电路服务于数据报服务对比对比项目虚电路数据报思路可靠通信应当由网络来保证可靠通信

2020-09-30 13:33:19 8260 4

原创 嵌入式QT的键盘鼠标和触摸屏支持

在不使用触摸屏的情况下,嵌入式QT对多个键盘鼠标,包括热拔插,都是支持的很好的但是一旦使用了触摸屏,就会发现鼠标失效了,因为使用触摸屏,必然要使用tslib进行校准,否则屏幕的箭头是很不准的,使用了tslib,就必须在环境变量QWS_MOUSE_PROTO中指定触摸屏的设备节点,于是鼠标就不起作用了关于如何实现同时支持触摸屏和鼠标,网上有很多做法,其实无非是两种,一个环境变量QWS_MOUSE_PROTO中即指定触摸屏节点,也指定鼠标节点,但是这种有非常大的问题,就是不一定每次生成设备节点的时候,都是按

2020-09-18 13:52:19 10966

原创 计算机网络3 数据链路层

使用点对点信道的数据链路层数据链路层属于计算机网络的低层,主要使用:点对点信道:一对一的点对点通信方式,点对点协议PPP广播信道:一对多的广播通信方式,CSMA/CD协议数据链路和帧链路(link):从一个结点到相邻结点的一段物理线路(有线或无线),中间没有其它交换结点,链路只是一条完整通信路径的组成部分数据链路(data link):通信时,除了必要的物理线路,还必须有通信协议来控制数据传输,将这些协议的硬件和软件加到链路上,就构成了数据链路常用网络适配器来实现这些协议,一般的

2020-09-17 09:53:34 12159

原创 计算机网络2 物理层

物理层的基本概念物理层考虑的是怎样在不同的传输媒体上传输数据比特流,而不是传输媒体本身物理层的作用是屏蔽掉传输媒体和通信手段的差异,让数据链路层不比考虑这些差异,专注于本层协议和服务的实现物理层的主要任务:确定与传输媒体接口相关的一些特性机械特性:接线器的形状、尺寸、引脚、排列、固定方式等电气特性:不同电平的范围功能特性:不同电平的意义过程特性:不同事件出现的顺序完成传输方式的转换:并行与串行传输的转换数据通信的基本知识通信系统的基本概念数据通信系统的组成:源系统

2020-09-11 17:08:26 8227

原创 计算机网络1 概述

计算机网络在信息时代的作用信息时代以网络为核心,重要特征是数字化、网络化、信息化网络是信息社会的命脉,是发展知识经济的重要基础互联网的两个特点:连通:任何互联网用户都可以相互交换数据,没有地域限制共享:资源共享互联网的作用:给人们工作、生活、娱乐、学习提供便利计算机病毒等带来的负面影响互联网+:互联网+各个传统行业,利用信息技术和互联网平台创造新的发展生态互联网概述起源于美国的互联网现在已经发展称为全世界最大的、覆盖全球的计算机网络网络的定义计算

2020-09-10 18:49:34 9227

原创 局域网内查询嵌入式设备IP的几种方式

前言最近有个需求,所有本地海思的板子,都要能查询到他们的IP。如果是用串口调试,当然很容易知道IP,但是大部分情况下,我们还是用telnet远程连接,这时候,不知道IP就啥也干不了。因此我想着在海思的板子上跑一个服务器程序,然后在本地运行客户端程序去查询,服务器接收到数据就将自己的IP返回给客户端,这样就知道所有海思芯片的IP了。一开始是做了一个用TCP协议通信的,但是考虑到ABC三类IP加起来数量太多了,线程开太多,程序会把电脑卡死。然后又尝试了UDP广播,但是又不能做到跨网段,最终的解决方案是不使

2020-09-10 13:57:53 9410 2

原创 海思如何固定MAC地址,并且保证每个板MAC地址不同

MAC地址的组成mac地址都是由IEEE的注册管理机构RA分配给厂商,分配时只分配前三个字节,后三个字节由各厂商自行分配mac地址由IEEE组织统一管理,所有合法的mac地址都可以通过IEEE官网查询到厂商IEEE组织会定期更新oui文件,用于查询mac地址厂商oui文件包含了mac地址的注册信息,包含mac地址前缀(前三个字节)和公司名等oui文件下载地址http://standards.ieee.org/develop/regauth/oui/oui.txt可以在浏览器中下载或通过wg

2020-09-07 16:47:04 9525 1

原创 前端学习(二十七)MongoDB数据库

数据库概述及环境搭建为什么要使用数据库动态网站中,数据都是存储在数据库中数据库可以持久存储客户端通过表单收集的用户信息数据库软件本身可以对数据进行高效的管理什么是数据库数据库即存储数据的仓库,可以将数据进行分类存储数据库独立于语言之外,可以通过API去操作它常见的数据库软件:mysql、mongoDB、oracleMongoDB下载地址:https://www.mongodb.com/download-center/communityMongoDB可视化软件compass:使

2020-09-07 00:01:37 7933

原创 前端学习(二十六)请求响应原理及HTTP协议

服务器端基本概念网站的组成客户端与服务器客户端:在浏览器中运行的部分,就是用户看到并与之交互的界面程序,使用HTML/CSS/JavaScript构建服务器端:在服务器中运行的部分,负责存储数据和处理应用逻辑客户端负责发起访问请求,服务器则要相应客户端的请求Node网站服务器能够提供网站访问服务的机器就是网站服务器,它能够接收客户端的请求,并对请求做出响应IP地址IP地址是互联网中设备的唯一标识IP是Internet Protocol Address的简写,代表互联网协议地址域

2020-09-06 01:37:16 8180

原创 前端学习(二十五)node.js基础

Node开发概述node开发属于后端开发为什么要学习后端开发前端人员需要掌握一些后端技术,才能够和后端程序员更加紧密的配合网站业务逻辑前置,学习前端技术需要后端技术支撑(Ajax)扩展知识视野,能够站在更高的角度审视整个项目后端需要做哪些事情实现网站的的功能(业务逻辑),如登陆等数据库的增删改查为什么选择node使用JavaScript语法开发后端,而JavaScript是前端的主要语言部分公司网页渲染由node完成生态系统活跃,有大量的开源库可以使用前端开发工具大多基于

2020-09-05 18:17:25 8037

原创 阿里云ssh连接不上 network error connection timed out

最近有个朋友买了阿里云的轻量级服务器,香港的节点,24块钱一个月,但是putty的ssh怎么都连不上,按照官方的教程做的,步骤都没有什么问题报错是network error connection timed out,也就是连接超时,但是本地是能ping通阿里云服务器的外网IP的我注意到那个IP有点怪异,8.210.87.105,可能是我见识浅薄,还没有见过第一个数字是个位数的IP,于是拿出了我的梯子,爬到了香港,然后再试了一下,居然连上了这个真是让人不可理解,我手上还有其它几个阿里云服务器,也都是香港

2020-09-03 16:46:49 9754 3

原创 前端学习(十九)webAPI基础2

事件注册事件给元素添加事件,称为注册事件或者绑定事件注册事件有两种方式:传统方式和监听注册方式传统注册方式利用on开头的事件注册注册事件的唯一性:同一元素的同一事件,只能有一个处理函数<button id="btn">按钮</button><script> var btn = document.getElementById('btn'); btn.onclick = function() { alert('按下了');

2020-09-02 16:55:21 7891

原创 前端学习(十八)webAPI基础1

web APIWeb API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM )DOM文档对象模型(Document Object Model):是W3C组织推荐的处理可拓展标记语言的标准编程接口,所有的浏览器都遵循这套规范通过DOM接口,可以改变网页的内容、结构、样式DOM树DOM树又称为文档树模型,把文档映射成树形结构,通过节点对象对其处理,处理的结果可以加入到当前页面文档:一个页面就是一个文档,DOM中使用document表示节点:网页中的所有内容,

2020-08-31 14:59:26 8154

原创 前端学习(十七)JavaScript基础-内置对象

内置对象内置对象提供了一些常用的属性和方法,能够帮助我们快速开发如Math、Date、Array、String等Math 数学对象Math不是构造函数,它提供静态的属性和方法属性、方法名功能Math.PI圆周率Math.floor()向下取整Math.ceil()向上取整Math.round()四舍五入版 就近取整 注意 -3.5 结果是 -3Math.abs()绝对值Math.max()/Math.min()求最大和最小

2020-08-31 12:25:00 7942

原创 unity3d学习(一):unity3d的介绍

unity3d介绍简介unity3d是由unity technologies公司开发的用于轻松创建游戏和三维互动内容的开发工具,是一个国际领先的专业游戏引擎游戏在移动平台,unity几乎成为3d游戏开发的标准工具,使用它开发的游戏数不胜数2d游戏:视角完全锁定,二维坐标3d游戏:可以任意变化视角,无锁定,三维坐标虚拟现实virtual reality:是世界前沿科技之一,利用电脑模拟产生一个三维空间的虚拟世界,并提供视觉、听觉、触觉等感官的模拟。使用者通过各种输入设备与虚拟环境中的事

2020-08-29 23:29:52 11171

原创 前端学习(十六)JavaScript基础-作用域和对象

作用域JS(ES6之前)的作用域有两种:全局作用域局部作用域全局作用域在整个script标签或者js文件内有效局部作用域在函数内部有效,也称为函数作用域JS没有块级作用域变量的作用域全局变量:在全局作用域下声明的变量叫做全局变量全局变量在代码的任何位置都可以使用在函数内部,不声明而直接赋值的变量,会变成全局变量局部变量:在局部作用域下声明的变量叫做局部变量(函数内部定义)局部变量只能在该函数内部使用函数的形参也是局部变量全局变量和局部变量的区别全局变量在

2020-08-29 15:41:15 7873

原创 rockchip的调试手段

NFS在rockchip的sdk中,一般默认情况下是不打开NFS功能的,这给习惯使用NFS挂载的人带来了一定的麻烦,不过稍微修改一下内核,就能支持NFS进入kernel目录sudo make menuconfig进行如下的修改[*] Networking support ---> Networking options ---> [*] IP: kernel level autoconfiguration [*] IP: DH

2020-08-25 13:45:30 10336 2

原创 前端学习(十五)JavaScript基础-数组和函数

数组数组可以把一组相关的数据一起存放,并提供方便的访问方式数组是指一组数据的集合,其中每个数据被称为元素,在数组中可以存放任意类型的元素创建数组利用new创建数组var arr = new Array();利用数组字面量创建数组var arr = ['red', 123, true];获取数组中的元素利用索引(下标)来访问数组元素,数组可以通过索引来访问、设置、修改对应的数组元素,可以通过数组名[索引]的形式来获取数组中的元素var arr = [1, 2, 3]ale

2020-08-24 23:41:10 8001

原创 sdk解压出现隐形错误

刚把rockchip 1808 的sdk从windows复制到linux下,检察了md5sum,都没啥问题,于是兴高采烈开始编译,没想到uboot就出现严重错误 CC arch/arm/cpu/armv8/fwcall.o LD arch/arm/cpu/armv8/built-in.o CC cmd/version.o CC common/main.o LD cmd/built-in.o LD common/built-i

2020-08-24 11:43:10 8165

原创 前端学习(十四)JavaScript基础-运算符和分支语句

运算符运算符(operator)也称为操作符,是用于实现赋值、比较、和执行算术运算等功能的符号常用的运算符有:算术运算符递增和递减运算符比较运算符逻辑运算符赋值运算符算术运算符加、减、乘、除、取余,用法同c语言递增和递减运算符++,–,用法同c语言比较运算符两个数据进行比较后,返回布尔值> < >= <= == != === !==与c语言相比,多了全等和不全等,用于判断左右两边是否值和数据类型完全相同逻辑运算符逻辑与 &amp

2020-08-22 20:57:32 7749

原创 前端学习(十三)JavaScript基础-变量

JavaScript是什么JavaScript是世界上最流行的语言之一,是一种运行在客户端的脚本语言不需要编译,运行过程中由js引擎(js解释器)逐行解释并执行可以基于node.js进行后端开发JavaScript的作用表单动态校验(密码强度检测)网页特效服务器开发(node.js)桌面程序(Electron)App(Cordova)物联网(Ruff)游戏开发(cocos2d-js)浏览器执行js浏览器分成两部分:渲染引擎和JS引擎渲染引擎:解析HTML和CSS,俗称内

2020-08-20 23:50:46 7892

原创 海思hi3531d音频外接codec (tlv320aic32x4)

前言为了在海思平台上使用tlv320aic3254,花了大概2个星期研究海思音频部分的手册、3254的用户手册,最终参考tlv320aic31的代码,实现了3254的驱动,同时在mpp的sample中,增加了3254对应的宏,以及相应的初始化代码,这篇文章主要是做一个阶段性的梳理参考资料资料说明ReleaseDoc\zh\00.hardware\chip\Hi3531DV100 H.265编解码处理器用户指南.pdf寄存器说明中文版ReleaseDoc\en\00.hard

2020-08-20 18:31:13 11194

原创 前端学习(十二)Bootstrap响应式布局

响应式布局原理使用媒体查询针对不同宽度的设备,进行布局和样式的设置,从而适配不同的设备响应式布局需要一个父级作为布局容器,通过媒体查询,改变这个布局容器的大小,根据布局容器的宽度,决定里面的子元素排列方式和大小常见的布局容器划分情况设备宽度布局容器宽度手机width ≤ 768100%平板768 ≤ width <992750px桌面显示器992≤ width <1200970px宽屏桌面显示器width ≥ 12001170pxBoot

2020-08-19 00:12:35 7985

原创 前端学习(十一)rem布局

rem概念:rem(root em)是一个相对单位,类似于em单位说明emem是父元素的字体大小remrem是html元素的字体大小优点:父元素字体大小可能不一样,但是只有一个html,可以用来整体控制大小媒体查询媒体查询(Media Query)是CSS3新语法。使用 @media查询,可以针对不同的媒体类型定义不同的样式@media 可以针对不同的屏幕尺寸设置不同的样式当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面目前

2020-08-10 00:34:55 7971

原创 前端学习(十)flex布局

基本概念flex是flexble box的缩写,意思为弹性布局,用来为盒装模型提供最大的灵活性任何一个容器都可以指定为flex布局(块级元素和行内元素都可以使用flex)父元素设为flex布局后,子元素的float、clear、vertical-align将失效采用flex布局的元素,称为flex容器(container),它所有的子元素自动成为容器成员,称为flex项目(item)通过给父盒子添加flex属性,来控制子盒子的位置和排列方式父项常见属性display:

2020-08-09 21:33:27 7892

原创 前端学习(九)流式布局

流式布局的概念流式布局,也就是百分比布局将盒子的宽度设置成百分比,根据屏幕的实际宽度进行伸缩,不受固定像素的限制,内容向两侧填充设置max-width,min-width,使得内容在合理的范围内流式布局的常用技巧设置视口<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">选择默认的样

2020-08-09 10:10:12 9335

原创 前端学习(八)移动布局的基本概念

移动布局基本概念视口 viewport概念:视口就是浏览器显示页面内容的屏幕区域分类类型说明布局视口 layout viewport解决早期的PC端页面在手机上显示的问题,一般为980px视觉视口 visual viewport是用户正在看到的网站的区域理想视口 ideal viewport最理想的视口尺寸,通常等于设备宽度视口标签<meta name="viewport" content="width=device-width, user

2020-08-06 22:30:00 7867

sample_uvc.rar

海思3531d uvc例程,实现多路yuv或mjpeg格式的uvc采集,分辨率设置,HMDI输出,文件包含sample_comm.h、sample_comm_sys.c、 sample_comm_vdec.c、sample_comm_vo.c、sample_comm_vpss.c、sample_uvc.c

2020-12-02

海思平台下tlv320aic3101驱动程序及sample

海思hi3531d平台下tlv320aic3101的驱动和sample tlv320aic3101 datasheet.pdf tlv320aic3101设置.xlsx tlv320aic31.c tlv320aic31.h tlv320aic31_def.h sample_audio.c sample_comm_audio.c

2020-10-22

tlv320aix3101音频驱动.rar

海思hi3531d平台下tlv320aic3101的驱动和sample tlv320aic3101 datasheet.pdf tlv320aic3101设置.xlsx tlv320aic31.c tlv320aic31.h tlv320aic31_def.h sample_audio.c sample_comm_audio.c

2020-10-22

本地局域网跨网段扫描,服务器和客户端源码

本资源分为服务器端和客户端程序及其源代码,服务器端程序后台运行,客户端程序用于查询服务器的IP,使用情景是本地连接了很多诸如嵌入式设备,需要通过telnet之类的方式连接调试,但是又不知道具体IP,就可以使用此程序查询,其中提供了所有源代码和可执行程序,客户端程序做了WIN和LINUX兼容,并且支持跨网段查询

2020-09-10

tlv320aix32x4声卡驱动源码(针对海思hi35xx的移植)

TI的tlv320aic3254声卡驱动在海思平台的移植,内含驱动源代码,ioctl命令说明,tlv320aic32x4用户手册原版和部分翻译的中文版

2020-08-20

pygame实现打飞机游戏源码

利用python和pygame实现简单的飞机大战游戏,英雄飞机可以上下左右移动和发射子弹,敌人飞机随机位置出现,敌人飞机无法发射子弹

2019-07-24

空空如也

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

TA关注的人

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