自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (2)
  • 收藏
  • 关注

原创 十二、【高级篇】WIFI模块-ESP8266

WIFI模块-ESP8266AT指令集AT指令使用示例ESP8266单连接:ESP8266透传ESP8266驱动代码:WiFi:芯片是ESP8266(32bit的单片机芯片),2.4GHz的无线射频模块,内部集成了TCP/UDP的协议栈需要通过串口为ESP8266发送AT指令:AT指令集、AT指令使用示例ESP8266模块是通过串口接口进行交互数据,连接STM32F103R8T6 USART2AT指令集AT指令使用示例ESP8266单连接:ESP8266透传ESP8266驱动代.

2021-12-13 17:28:43 5351

原创 十一、【高级篇】无线通信模块(Nrf)

无线通信模块-Nrf物联网及通信模块介绍嵌入式物联网:Nrf模块SPI协议:Nrf代码驱动nrf2401.hnrf2401.cmain.c物联网及通信模块介绍物联网嵌入式:ARM架构认证、华为物联网认证、工信部物联网的通信技术:有线通信-以太网OSI7层网络结构:应用层:网络服务最终的一个端口表示层:可以把数据包中二进制的数据转换成不同格式的数据会话层:建立、管理、终止会话,根据不同的系统、不同的平台,区分不同的会话传输层:定义了传输数据的协议端口号以及流控比如说TCP/UDP网络层:.

2021-12-13 09:17:26 5914

原创 十、【高级篇】RTC--实时时钟

RTC--实时时钟RTC简介查找RTC的时钟频率查找RTC的计数值范围初始化RTC转换获取时间主函数OLED显示实时时钟RTC简介RTC叫做REAL TIME CLOCK,是实时时钟,实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可 提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。我们使用的STM32F103RBT6芯片内部集成了RTC的外设功能,可以直接使用RTC的外设功能,如果使用的芯片内部没有集成RTC的外设功能,那么需要额外连接RTC的.

2021-11-30 09:55:35 2819

原创 九、【中级篇】串口通信(USART、IIC)、读取EEPROM

串行接口1.串口简介2.串口的工作模式3.串口与并口的区别4.不同电平标准的串口5.开发板上的串口6.USART/UART简介7.USART/UART的配置初始化USART1发送与接收数据主函数:有限状态机实现控制蜂鸣器(发送接收字符串)1.串口简介串口也叫做串行的接口,串行的通信接口或者串行的通讯接口,(COM接口)串行的通信指的是数据一位一位的按顺序进行传输操作方式简单,只需要一条数据线就可以完成数据的传输2.串口的工作模式单工模式:A------>-----B,A设备只发送数据,.

2021-11-19 13:58:11 4934

原创 八、【中级篇】数码管驱动(74HC138,74HC595)

六、数码管数码管接线图以及介绍:1、各类数码管介绍数码管也可以称为7段数码管或者8段数码管,8段数码管要比7段数码管多一个用于显示小数的小数点数码管中的每一个段都是一个LED灯共阴极数码管和共阳极数码管:共阴极数码管:数码管上所有LED灯的阴极都连接到一起,接地共阳极数码管:数码管上所有LED灯的阳极都连接到一起,接电源共阴极的编码和共阳极的编码正好相反如何得到数码管编码:网上搜索、工具直接转换,例:共阳:char code table[]={0xc0,0xf9,0xa4,0xb0

2021-11-17 19:28:57 4309

原创 七、【中级篇】传感器DHT11、DHT22、DS18B20

传感器1.传感器简介串口与并口单工与半双工上拉电阻:是用来供应电流的下拉电阻:是用来分担电流的2.DHT11传感器串行接口收发数据分析DHT11的读写时序1.传感器简介智能终端是在感知层,如果想要感知采集数据必定需要使用传感器市面上的传感器有很多:检测气体的 温度 湿度 稀有气体含量(CO CO2 O2 甲醛 乙醇 甲烷 …)检测液体的 温度 PH值 浑浊 液位检测固体的 湿度 元素含量检测人体 温度 血压 心率 血糖…传感器的接口也有很多:GPIO接口 串口接口(USART/UART

2021-11-14 21:04:43 10096

原创 六、【中级篇】看门狗(watch dog)

看门狗watch dog1.看门狗的使用环境2.看门狗的简介3.看门狗的喂狗4.看门狗外设资源5.介绍STM32芯片中的看门狗1.看门狗的使用环境在工业的工作环境中设备经常面临一些恶劣的环境,超高温 超低温 强烈的电磁干扰,这些环境都会影响设备的正常工作会造成设备死机,设备中运行的程序直接跑飞所以可以使用看门狗帮助程序员检测设备是否死机或者程序跑飞,一旦设备死机或者程序跑飞,看门狗可以帮助程序员重启系统2.看门狗的简介看门狗属于定时器的资源,既然说看门狗是定时器,那么决定看门狗的定时长短由时钟频率

2021-11-13 10:11:56 2844

原创 五、【中级篇】时钟树、定时器、中断

三、定时器、中断在STM32芯片中提供了非常丰富的定时器资源:普通定时器和其他定时器普通定时器 : TIM1 TIM2 TIM3 TIM4 (4X16bit定时器)其他定时器 : IWDG WWDG RTC 24bit down count在ARM-CORTEX-M3核心中提供了定时器的资源:系统定时器(system timer | systick)无论是STM32提供的定时器资源还是ARM提供的定时器资源,无论是普通定时器还是其他定时器这些定时器都是由两个因素(时钟频率 和 计数值)决定定

2021-11-09 19:48:16 946

原创 四、【入门篇】官方LIB库、位带操作

二、官方LIB库、位带操作[注意] : STM32固件库使用手册(中文版).pdf 这本手册是一本工具书,是用来查阅的空指针:编译时不会报错,但是在执行程序是会报段错误int *p = NULL;int *p = 0x0;*p = 100; //使用了空指针 空类型的指针(万能指针):可以接收任意类型的地址void *p;野指针:编译时不会报错,在执行程序时未知(不会报错)int *p = NULL; //sizeof(int *) = ?p = malloc(4); //0x1234

2021-11-08 19:03:28 707

原创 三、【入门篇】GPIO、寄存器相关操作

入门篇-GPIO、寄存器相关操作1、芯片管脚以及功能2、GPIO 输入与输出3、寄存器的地址4、对寄存器进行按位操作寄存器操作小练习:5、驱动LED灯6、驱动蜂鸣器7、GPIO的输入功能由表象到里象了解智能终端设备通过画图的方式,了解芯片内部的组成部分STM32 = CPU + 内存 + 硬盘 + 外设了解ARM公司以及ST公司通过最新选型手册,了解芯片的外设个数内存20Kb 硬盘128Kb 64管脚封装 外设数量通过讲硬件的手册,了解芯片内部的结构ARM-CORTEX-M3 72MHz

2021-11-06 09:57:54 1626

原创 二、【入门篇】模板工程、烧录环境设置

一、搭建模板项目工程1、创建目录结构在<桌面>上新建文件夹,重命名<stm32f103>在<桌面\stm32f103>中新建文件夹,重命名<01test>在<桌面\stm32f103\01test>目录中新建文件夹 cmsis 存放有关ARM-CORTEX-M系列文件 fwlib 存放ST公司的官方固件(LIB库) mylib 存放程序员自己写的固件 project 存放项目工程文件 user 存放主文件2、拷贝源文件

2021-11-04 22:32:26 307

原创 一、【回顾篇】linux基础、C语言、数据结构回顾

一、linux基础、C语言、数据结构回顾目录一、linux基础、C语言、数据结构回顾1、linux基础:2、Linux下的C语言3、面试题4、linux下数据结构5、Linux下高级编程6、结构7、物联网项目框架8、现如今物联网技术9、由表象到里象了解芯片10、了解芯片10、ARM公司和ST公司11、了解STM32F103RBT6芯片1、linux基础:熟悉Linux环境、Red Hat centos suse ubuntu …、安装操作系统、命令、服务、权限、vim gcc2、Linux下的C语言

2021-11-02 23:09:11 3153

原创 嵌入式基础面-UNIX高编阶段常见面试题整理

本章详情: 该文章是我在招阶段整理的关于“嵌入式面经”的一些道题目,“软件开发岗位”也可以参考下。涵盖了大多数嵌入式/软件开发岗位常见基础面试题,题目来源是牛客网各大大厂的面经,答案是我逐个查阅资料,理解整理出的答案争取让读者尽可能的容易阅读和理解,部分内容来源于牛客网用户:爱打球的程序员乔丹。资深嵌入式软件开发工程:任立超。UNIX高编阶段常见习题整理目录UNIX高编阶段常见习题整理一、文件系统与IO1、 Linux内核空间模型2、标准I/O和文件I/O有什么区别3、缓存区.

2021-10-04 15:41:39 678

原创 一、QT-应用程序开发之下载与新建工程

一、QT-应用程序开发之下载与新建工程Qt | 官方网站QT特点:移植性好,所见即所得。1.1 下载网站:Index of / (qt.io)QT文档手册:All Classes | Qt 5.9 文档1.2 创建工程选择模板–>选择工程位置–>选择选项–>选择类信息–>项目管理注意:先选择基类类型,有三种,这里我们选则QWidget创建完成!!1.3 初始代码说明...

2021-09-23 13:29:37 165

原创 C++初探:qt应用

C++面向对象后缀 .cpp编译: g++ xxx.cpp**封装:**封装的抽象过程,描述一类事物的特点**类:**一类事物的统称**对象:**某类事物的一个特别/个体如何描述一类事物:数据成员,成员方法。实例化对象:int i;例: A a1; “实例化一个A类型的对象a1”继承:核心,在原有的特点/功能上加上新特点/功能。多态:延申, 同一条命令作用在不同对象上显示效果不同。一、输入和输出1.cin (输入) – 默认与键盘链接,接受从键盘输入的数据信息。语法

2021-09-22 19:27:20 522 1

原创 十三、网络IPC 套接字

十三、网络IPC 套接字#协议族 man 7 中章节有介绍$ cd /proc/$ netstat -anu //查看udp 报式传输$ netstat -anu | grep xxxx //查看udp 报式传输$ netstat -ant //流式套接字字节序13.1 套接字描述符字节序[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xaxh4RYH-1631799712651)(E:\笔记 + 资料\03.APUE\page\image-20210

2021-09-16 21:42:02 575

原创 十二、进程间通信

十二、进程间通信管道天生能实现阻塞,管道必须凑齐读写双方才能建立mkfifo命名管道12.1 匿名管道匿名管道:pipe(),磁盘上看不到文件,相当于直接给了我们一个文件描述符或者FILE* 。导致最直接的结果就是 :如果两个进程之间没有血缘关系,是不能用匿名管道进行通信的,因为另一个进程找不到文件位置。局限性:管道只能在具有公共祖先的两个进程中使用,通常一个管道由一个进程创建,在进程调用fork之后,这个管道就能在父进程和子进程和子进程之间使用了函数原型:#include &l

2021-09-15 20:57:22 268

原创 十一、高级IO

十一、高级I/O回顾/* 返回值 */阻塞IO 假错(EINTR) 阻塞期间被打断非阻塞IO 假错(EAGAIN) 非阻塞的模式下没读到 /* 返回值如果是-1 不一定是打开出错 */open(pathname,O_RDWR|O_NONBLOCK) //O_NONBLOCK 非阻塞读写 11.1非阻塞IOfcntl()函数功能:对已打开的文件描述符进行各种控制操作以改变已打开文件的的各种属性#include <uni

2021-09-15 19:53:32 238

原创 十、线程(11 章)

十、线程$ ps -axm //显示所有的线程$ ps ax -L //10.1 线程概念posix只是线程标准,不是实现。先有标准后有实现。线程的本质:正在运行的函数,之前的程序都是一个进程相当于一个容器,里面跑了很多个线程。进程通信是先有实现,后有标准。pthread_10.2 线程相关函数:由于pthread库不是标准linux库,所以编译 改为gcc thread.c -lpthread 即可。每一个线程都有一个栈pthread_equal()**函数功能:**比较

2021-09-09 21:46:18 260

原创 九、信号(10章)

九、信号(10章)$ ulimit -a$ ulimit -c 1024 //设置资源上限$ gdb //保存单步调试信息,corefile$ kill -l //查看进程号$ kill -8 11222 //给一个进程发送一个信号编号为8的信号$ diff xxx xxx //比较两个文件$ gcc -O //优化 //VT 控制码 怎么在当前终端设置颜色**同步:**结果可预见**异步:**时间什么时候后不知道,发生后会引起什么结果不知道。**解决方法:

2021-09-07 19:47:00 452

原创 七、进程关系 八、守护进程

进程控制、守护进程七、进程控制7.1 进程组7.2 会话7.3 终端八、守护进程8.1 写一个守护进程8.2 写一个日志文件openlog() && closelog()syslog()七、进程控制$ ps axj //打印进程状态$ ps axj | grep xxxx //之查看跟xxxx有关的进程$ tail -f xxx //动态查看7.1 进程组每个进程除了有一进程ID之外,还属于一个进程组,进程组是一个或多个进程的集合,进程组ID是一个正整数,并可以存放在pi

2021-09-05 18:59:06 205

原创 六、进程控制

六、进程控制$ top 动态查看进程 $ pstree 查看进程之间的关系$ ps -ef | more //让显示的内容以页显示6.1 进程标识进程pid号使用策略,一直往下用,直到用到了最大值然后再回去找1号init进程是所有进程的祖先进程,所有进程都是直接或间接由1号进程产生的。进程产生后会在一个就绪队列中进行排队(进程多处理器少),大体会以先进先出的形式进行调度,小部分按照优先级进行调度,被调度的时候进程变成running态,注意:进程间只有父子关系 例: 进程ABC,B死了,

2021-09-02 17:13:47 250

原创 四、文件信息 五、进程环境

tail -f 以动态的形式查看文件尾部的变化一、系统数据文件和信息6.10 时间和日期例程计算机:大整数(time_t)程序员:结构体用户:字符串时间相关函数1、time函数功能:能从内核当中拿到一个以秒为单位的时间time_t time(time_t *tloc); //#include <time.h>//返回值:成功-->time_t * 失败--> -1time_t stamp;stamp = time(NULL);2、localt

2021-08-26 09:34:48 585

原创 三、文件和目录

ctags /usr/include 搜索树vim -t ssize_t //检索当前类型命令du 打印文件在磁盘中真正的占用空间文件和目录相关函数1、stat()函数功能:int stat(const char *pathname, struct stat *statbuf);//返回值:成功0 失败--> -1stat默认展开符号链接 lstat不展开符号链接struct stat 结构体成员:struct stat { dev_t st_d

2021-08-23 19:45:08 303

原创 二、系统IO

(sysio)文件IO1、open()函数功能:使用给定的模式flags打开pathname所指定的文件函数原型:( $: man 2 open --> 手册 )当文件存在时int open(const char* pathname,int flags)//只要有open就会产生一个结构体,然后去调用它,返回给用户一个整型数文件描述符。//拿到的是一个文件描述符,然后通过描述符引用结构体。当文件不存在时int open (const char* pathname,int f

2021-08-23 09:07:56 208 1

原创 一、标准/文件IO

重定向文件IO一、标准IO1、文件操作报错信息打印2、标准IO函数(1).fopen() && fclose()(2).fscanf() && fprintf()(3).fgetc() && fputc()(4).fgets() && fputs()(5).fread() && fwrite()二、拓展提升1、查看一个程序最多能打开多少个文件2、ulimit:3、setlimit一、标准IOIO:input &a

2021-08-19 17:27:11 357 2

原创 C语言与数据结构相关习题整理

C语言与数据结构相关习题整理选择题填空题编程题选择题1、一个栈的入栈序列是 a,b,c,d,e,则栈的不可能的输出序列是( ) [A] edcba [B] decba [C] dceab [D] abcde答案:C2、以下为 linux 下的 32 位 C 程序,请计算 sizeof 的值char str[10] = “Hello” ; char *p = str ;请计算:sizeof ( str ) = 10void Func ( char str[100]){……}

2021-08-18 22:21:02 1038

原创 1.1 实现单链表逆序操作

编写函数,实现带头结点的单链表逆序操作。(要求:不申请新的空间,在原有空间上进行逆序)例:若原链表顺序为 3->6->2->5->7->8,逆序后顺序为 8->7->5->2->6->3。void list_reverse(LIST *ptr) { LIST *p,*q,*r; if(ptr->next == NULL || ptr->next->next == NULL) return ; p = ptr

2021-08-18 09:00:48 401

原创 1.2实现两个多项式相加(单项不循环链表)

链表实现两个多项式合并(有头结点单项不循环链表)1、结构体构建typedef struct node_st{ int coef; int exp; struct node_st *next;}POLY;2、申请两个二维数组空间POLY *poly_create(int (*a)[2],int m){ POLY *head,*p,*q; int i; head = malloc(sizeof(*head)); if(head == NULL) return NULL;

2021-08-14 18:32:45 347 1

原创 0、顺序存储的线性表

本专栏代码均在ubutun系统中测试过,源码可以执行以下命令在终端执行进行克隆git clone https://github.com/celery1798/coder210714一、线性表线性表是最基本、最简单、也是最常用的一种数据结构。一个线性表是n个具有相同特性的数据元素的有限序列。线性表特征:(数据元素之间具有一种“一对一”的逻辑关系。)第一个数据元素没有前驱,这个数据元素被称为头结点;最后一个数据元素没有后继,这个数据元素被称为尾结点;除了第一个和最后一个数据元素外,其他数据元

2021-08-13 12:28:07 330 3

原创 9、静态库和动态库构建

1、静态库静态库名称:libxxx.a(xxx代表库的名称)1.1 静态库的生成ar -cr libxx.a yyy.o //libxxx.a是库的名称,yyy.o 是目标文件ar -cr libllist.a llist.o //llist是我们的库代码执行之后会出现如下文件:1.2 库的保存mv llist.h /usr/local/include //include保存头文件的位置mv libllist.a /usr/local/lib //lib保存库的位置

2021-08-12 14:08:20 176

原创 8、二叉树删除结点(史上最简洁)

本程序可以删除叶子节点,根节点,以及其它任何位置的结点,看代码,本源码来自“李慧芹”老师void delete(struct node_st **root, int id){ struct node_st **node = root; struct node_st *cur; while( (*node) != NULL && (*node)->data.id != id ) { if( id < (*node)->data.id ) node

2021-08-12 09:58:54 157

原创 7、树、二叉树以及代码构建

本篇博客部分图片来自《黑马程序员数据结构资料》,如有侵权,请联系我。树1、树的基本定义树是我们计算机中非常重要的一种数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,例如家 谱、单位的组织架构、等等。树是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就 是说它是根朝上,而叶朝下的。1.1 树的相关术语略,自行CSDN搜索;2、二叉树二叉树就是度不超过2的树(每个结点最多有两个子结点)每个节点有且最多有两个节点2.

2021-08-11 18:14:36 1040 3

原创 6、c语言实现求钟算法

c语言实现求钟算法1、题目要求:2、主函数_main.c#include <stdio.h>#include <stdlib.h>#include "queue.h"#include "stack.h"int main(){ STACK *st_hour,*st_fivemin,*st_min; QUEUE *qu; int time = 0,i,ball,tmp; st_hour = stack_create(); /*if error*/ st_

2021-08-09 22:25:50 237

原创 5、c语言四则计算器(包括括号)

文章目录**C语言四则( ' + ' , ' - ' , ' * ' , ' / ')计算器,包括括号**1、思路:2、代码2.1 主函数_main.c2.2 没有括号的运算函数_deal_op(snum,sop,str[i])2.3 遇到右括号时运算的函数_deal_bracket(STACK *snum, STACK *sop)2.4 结果运算函数_compute(STACK *snum, int op)2.5 设置运算符优先级函数_get_pri(int op)2.6 static.c 的所有函数

2021-08-09 22:18:53 3166 3

原创 4、队列(先进先出)_顺序/链式存储

文章目录队列(先进先出)1、方法构建2、顺序存储的队列2.1 队列的创建(malloc)2.2 入队、判满条件2.3 出队、判空条件2.4 销毁2.5 main.c(部分)3、链式存储的队列3.1 队列的创建(链式存储)3.2 入队、判满条件3.3 出队、判空条件3.4 销毁3.5 main.c(略)队列(先进先出)队列是一种基于先进先出(FIFO)的数据结构,是一种只能在一端进行插入,在另一端进行删除操作的特殊线性表,它 按照先进先出的原则存储数据,先进入的数据,在读取数据时先读被读出来。1、方

2021-08-09 17:22:17 1387

原创 3、栈(先进后出)_顺序/链式方式存储

栈(先进后出)我们把生活中的栈的概念引入到计算机中,就是供数据休息的地方,它是一种数据结构,数据既可以进入到栈中, 又可以从栈中出去。1、计算机中的栈栈是一种基于先进后出(FILO)的数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出 的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一 个数据被第一个读出来)。 我们称数据进入到栈的动作为压栈,数据从栈中出去的动作为弹栈。2、顺序存储的栈先进后出:栈顶的位置会一直改变2.1

2021-08-09 16:49:28 1516

原创 2、链式存储的双向循环链表

双向链表双向链表也叫双向表,是链表的一种,它由多个结点组成,每个结点都由一个数据域和两个指针域组成,数据域用 来存储数据,其中一个指针域用来指向其后继结点,另一个指针域用来指向前驱结点。链表的头结点的数据域不存 储数据,指向前驱结点的指针域值为null,指向后继结点的指针域指向第一个真正存储数据的结点。1、带头结点的双向循环链表每个结构体都知道自己的前驱和后继空表:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mVTQ9JFJ-1628123529840)(D:

2021-08-05 08:35:43 443

原创 1、链式存储的线性单链表

一、线性表线性表特征:第一个数据元素没有前驱,这个数据元素被称为头结点;最后一个数据元素没有后继,这个数据元素被称为尾结点;除了第一个和最后一个数据元素外,其他数据元素有且仅有一个前驱和一个后继。1、链式存储的线性表:单链表单向链表是链表的一种,它由多个结点组成,每个结点都由一个数据域和一个指针域组成,数据域用来存储数据, 指针域用来指向其后继结点。链表的头结点的数据域不存储数据,指针域指向第一个真正存储数据的结点。1.1 无头结点的单项不循环链表1.2 带头结点的单项不循环链表.

2021-08-02 21:18:02 285

原创 Part4-函数与指针相关案例

文章目录1、函数的嵌套调用:求三个数中最大数和最小数的差值2、想求第几项Fibonacci数列的值,就出来第几个值。3、求N的阶乘4、3个学生各学4门课,1)计算总平均分,2)只查看某学生的个各门功课成绩1、函数的嵌套调用:求三个数中最大数和最小数的差值#include <stdio.h>#include <stdlib.h>int max(int *arry){ int max=0; for(int i=0;i<3;i++) {

2021-07-29 20:04:34 432

51单片机-基础例程.zip

内涵大量51单片机基础例程 实验1:点亮第一个LED 实验2:LED闪烁 实验3:LED流水灯 实验4:蜂鸣器 实验5:静态数码管显示 实验6:动态数码管显示 实验7:独立按键 实验8:矩阵按键 实验9:8X8LED点阵(点亮一个点) 实验10:8X8LED点阵(显示数字)

2020-10-24

2.任务实践-通讯录管理系统.cpp

黑马程序员C++笔记--第二阶段实战:通讯录管理系统 通讯录是一个可以记录亲人、好友信息的工具。 系统中需要实现的功能如下: 1.添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人 2.显示联系人:显示通讯录中所有联系人信息 3.删除联系人:按照姓名进行删除指定联系人 4.查找联系人:按照姓名查看指定联系人信息 5.修改联系人:按照姓名重新修改指定联系人 6.清空联系人:清空通讯录中所有信息 0.退出通讯录:退出当前使用的通讯录

2020-10-24

空空如也

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

TA关注的人

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