目录

  • 一.SPI
    • 1.简介
    • 2.工作模式
    • 3.通讯引脚
  • 二.用0.96OLED显示数据
    • 1.OLED原理简介
  • 三.OLED显示实验
    • (1).实验目的
    • (2).实验实现
      • 1.显示学号和姓名
      • 2.显示AHT20的温度和湿度
      • 3.滚动显示字符

一.SPI

1.简介

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用在 ADC、LCD 等设备与 MCU 间要求通讯速率较高的场合。SPI总线系统可直接与各个厂家生产的多种标准外围器件连接,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线C/S(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。

2.工作模式

根据 CPOL 及 CPHA 的不同状态,SPI 分成了四种模式,见下图,主机与从机需要工作在相同的模式下才可以正常通讯,实际中采用较多的是“模式 0”与“模式 3”。

3.通讯引脚


其中 SPI1 是 APB2 上的设备,最高通信速率达 36Mbtis/s,SPI2、SPI3 是 APB1 上的设备,最高通信速率为 18Mbits/s。除了通讯速率,在其它功能上没有差异。其中 SPI3 用到了下载接口的引脚,这几个引脚默认功能是下载,第二功能才是 IO 口,如果想使用 SPI3 接口,则程序上必须先禁用掉这几个 IO 口的下载功能。一般在资源不是十分紧张的情况下,这几个 IO 口是专门用于下载和调试程序,不会复用为 SPI3。

二.用0.96OLED显示数据

1.OLED原理简介

OLED,又称为有机电激光显示、有机发光半导体,OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。

三.OLED显示实验

(1).实验目的

(1)显示自己的学号和姓名
(2)显示AHT20的温度和湿度
(3)滑动显示实现硬件刷屏模式

(2).实验实现

1.显示学号和姓名

下载程序:
链接: https://link.csdn.net/?target=http://www.lcdwiki.com/res/Program/OLED/0.96inch/SPI_SSD1306_MSP096X_V1.0/0.96inch_SPI_OLED_Module_SSD1306_MSP096X_V1.0.zip.



打开字符提取软件;
打开对应的工程

进入工程改写代码
test.c:

void TEST_MainPage(void)
{   GUI_ShowString(28,0,"rqk",16,1);GUI_ShowCHinese(28,20,16,"冉乾坤",1);GUI_ShowString(4,48,"631907030419",16,1);delay_ms(1500);        delay_ms(1500);
}

保存代码,用字模生成工具生成如下:

复制生成的字模加入到工程代码中
oledfont.h

typedef struct
{unsigned char Index[2];    char Msk[32];
}typFNT_GB16; //宋体
//16*16大小
//逐行式,顺向(高位在前)
const typFNT_GB16 cfont16[] =
{
"冉",0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0xFF,0xFE,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x28,0x20,0x10,/*"冉",0*/"乾",0x10,0x40,0x10,0x40,0x10,0x80,0xFE,0xFE,0x11,0x00,0x7E,0x00,0x44,0xFC,0x7C,0x08,0x44,0x10,0x7C,0x20,0x10,0x40,0xFE,0x80,0x11,0x02,0x11,0x02,0x10,0xFE,0x10,0x00,/*"乾",1*/"坤",0x10,0x20,0x10,0x20,0x10,0x20,0x11,0xFC,0x11,0x24,0xFD,0x24,0x11,0x24,0x11,0xFC,0x11,0x24,0x11,0x24,0x11,0x24,0x1D,0xFC,0xE1,0x24,0x40,0x20,0x00,0x20,0x00,0x20,/*"坤",2*/"6",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x80,0x00,0xE0,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"6",0*/"3",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x10,0x00,0x20,0x00,0x10,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"3",1*/"1",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xC0,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"1",2*/"9",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x10,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"9",3*/"0",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"0",0*/"7",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x90,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"7",1*/"0",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"0",0*/"3",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x10,0x00,0x20,0x00,0x10,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"3",1*/"0",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"0",0*/"4",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x50,0x00,0x50,0x00,0x90,0x00,0xF8,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"4",5*/"1",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xC0,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"1",2*/"9",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x90,0x00,0x70,0x00,0x10,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"9",3*/
};


改写main.c函数

int main(void)
{   delay_init();                  //延时函数初始化      NVIC_Configuration();        //设置NVIC中断分组2:2位抢占优先级,2位响应优先级     OLED_Init();                     //初始化OLED  OLED_Clear(0);             //清屏(全黑)while(1) { TEST_MainPage();         //主界面显示测试}
}

编译测试

电路连接

烧录成功

2.显示AHT20的温度和湿度

打开串口显示温度工程

改写代码
bsp_i2c.c:
void read_AHT20(void)改写成:

void read_AHT20(void)
{uint8_t   i;for(i=0; i<6; i++){readByte[i]=0;}//-------------I2C_Start();I2C_WriteByte(0x71);ack_status = Receive_ACK();readByte[0]= I2C_ReadByte();Send_ACK();readByte[1]= I2C_ReadByte();Send_ACK();readByte[2]= I2C_ReadByte();Send_ACK();readByte[3]= I2C_ReadByte();Send_ACK();readByte[4]= I2C_ReadByte();Send_ACK();readByte[5]= I2C_ReadByte();SendNot_Ack();//Send_ACK();I2C_Stop();//--------------if( (readByte[0] & 0x68) == 0x08 ){H1 = readByte[1];H1 = (H1<<8) | readByte[2];H1 = (H1<<8) | readByte[3];H1 = H1>>4;H1 = (H1*1000)/1024/1024;T1 = readByte[3];T1 = T1 & 0x0000000F;T1 = (T1<<8) | readByte[4];T1 = (T1<<8) | readByte[5];T1 = (T1*2000)/1024/1024 - 500;AHT20_OutData[0] = (H1>>8) & 0x000000FF;AHT20_OutData[1] = H1 & 0x000000FF;AHT20_OutData[2] = (T1>>8) & 0x000000FF;AHT20_OutData[3] = T1 & 0x000000FF;}else{AHT20_OutData[0] = 0xFF;AHT20_OutData[1] = 0xFF;AHT20_OutData[2] = 0xFF;AHT20_OutData[3] = 0xFF;printf("lyy");}/*通过串口显示采集得到的温湿度printf("\r\n");printf("温度:%d%d.%d",T1/100,(T1/10)%10,T1%10);printf("湿度:%d%d.%d",H1/100,(H1/10)%10,H1%10);printf("\r\n");*/t=T1/10;t1=T1%10;a=(float)(t+t1*0.1);h=H1/10;h1=H1%10;b=(float)(h+h1*0.1);sprintf(strTemp,"%.1f",a);   //调用Sprintf函数把DHT11的温度数据格式化到字符串数组变量strTemp中  sprintf(strHumi,"%.1f",b);    //调用Sprintf函数把DHT11的湿度数据格式化到字符串数组变量strHumi中  GUI_ShowCHinese(16,00,16,"温湿度显示",1);GUI_ShowCHinese(16,20,16,"温度",1);GUI_ShowString(53,20,strTemp,16,1);GUI_ShowCHinese(16,38,16,"湿度",1);GUI_ShowString(53,38,strHumi,16,1);delay_ms(1500);      delay_ms(1500);
}

定义变量:

#include "bsp_i2c.h"
#include "delay.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
#include "stdio.h"
#include "string.h"uint8_t   ack_status=0;
uint8_t   readByte[6];
uint8_t   AHT20_status=0;uint32_t  H1=0;  //Humility
uint32_t  T1=0;  //Temperatureuint8_t t1,t2,t3,t4;
uint8_t h1,h2,h3,h4;uint8_t  AHT20_OutData[4];
uint8_t  AHT20sendOutData[10] = {0xFA, 0x06, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF};
char strTemp[30];  //声明字符数组strTemp,初始化元素30
char strHumi[30];  //声明字符数组strHumi,初始化元素30
int t;
int h;
float a;
float b;

在字模库中添加

 "温",0x00,0x00,0x23,0xF8,0x12,0x08,0x12,0x08,0x83,0xF8,0x42,0x08,0x42,0x08,0x13,0xF8,0x10,0x00,0x27,0xFC,0xE4,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x2F,0xFE,0x00,0x00,/*"温",0*/"湿",0x00,0x00,0x27,0xF8,0x14,0x08,0x14,0x08,0x87,0xF8,0x44,0x08,0x44,0x08,0x17,0xF8,0x11,0x20,0x21,0x20,0xE9,0x24,0x25,0x28,0x23,0x30,0x21,0x20,0x2F,0xFE,0x00,0x00,/*"湿",0*/"度",0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20,0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E,/*"度",0*/"显",0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x10,0x1F,0xF0,0x04,0x40,0x44,0x44,0x24,0x44,0x14,0x48,0x14,0x50,0x04,0x40,0xFF,0xFE,0x00,0x00,/*"显",0*/"示",0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x11,0x10,0x11,0x08,0x21,0x04,0x41,0x02,0x81,0x02,0x05,0x00,0x02,0x00,/*"示",0*/

main.c函数

#include "delay.h"
#include "usart.h"
#include "bsp_i2c.h"
#include "sys.h"#include "oled.h"
#include "gui.h"
#include "test.h"int main(void)
{   delay_init();                  //延时函数初始化          uart_init(115200);     IIC_Init();NVIC_Configuration();      //设置NVIC中断分组2:2位抢占优先级,2位响应优先级     OLED_Init();                     //初始化OLED  OLED_Clear(0); while(1){//printf("温度湿度显示");read_AHT20_once();OLED_Clear(0); delay_ms(1500);}
}

编译测试
连接电路
显示成功

3.滚动显示字符

代码改写:
main.c

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
int main(void)
{   delay_init();                  //延时函数初始化      NVIC_Configuration();        //设置NVIC中断分组2:2位抢占优先级,2位响应优先级     OLED_Init();                     //初始化OLED  OLED_Clear(0);             //清屏(全黑)OLED_WR_Byte(0x2E,OLED_CMD);        //关闭滚动OLED_WR_Byte(0x27,OLED_CMD);        //水平向左或者右滚动 26/27OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节OLED_WR_Byte(0x00,OLED_CMD);        //起始页 0OLED_WR_Byte(0x07,OLED_CMD);        //滚动时间间隔OLED_WR_Byte(0x07,OLED_CMD);        //终止页 7OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节OLED_WR_Byte(0xFF,OLED_CMD);        //虚拟字节TEST_MainPage();OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动
}

test.c:

void TEST_MainPage(void)
{   GUI_ShowCHinese(10,20,16,"从前从前有个人爱你很久",1);delay_ms(1500);     delay_ms(1500);
}

字模库添加:

"从",0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x50,0x14,0x50,0x12,0x50,0x12,0x88,0x20,0x88,0x21,0x04,0x42,0x04,0x84,0x02,/*"从",0*/
"前",0x10,0x10,0x08,0x10,0x08,0x20,0xFF,0xFE,0x00,0x00,0x3E,0x08,0x22,0x48,0x22,0x48,0x3E,0x48,0x22,0x48,0x22,0x48,0x3E,0x48,0x22,0x08,0x22,0x08,0x2A,0x28,0x24,0x10,/*"前",1*/
"从",0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x50,0x14,0x50,0x12,0x50,0x12,0x88,0x20,0x88,0x21,0x04,0x42,0x04,0x84,0x02,/*"从",2*/
"前",0x10,0x10,0x08,0x10,0x08,0x20,0xFF,0xFE,0x00,0x00,0x3E,0x08,0x22,0x48,0x22,0x48,0x3E,0x48,0x22,0x48,0x22,0x48,0x3E,0x48,0x22,0x08,0x22,0x08,0x2A,0x28,0x24,0x10,/*"前",3*/
"有",0x02,0x00,0x02,0x00,0xFF,0xFE,0x04,0x00,0x04,0x00,0x0F,0xF0,0x08,0x10,0x18,0x10,0x2F,0xF0,0x48,0x10,0x88,0x10,0x0F,0xF0,0x08,0x10,0x08,0x10,0x08,0x50,0x08,0x20,/*"有",4*/
"个",0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x10,0x10,0x21,0x08,0xC1,0x06,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,/*"个",5*/
"人",0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x08,0x20,0x10,0x10,0x20,0x08,0x40,0x04,0x80,0x02,/*"人",6*/
"爱",0x00,0x08,0x01,0xFC,0x7E,0x10,0x22,0x10,0x11,0x20,0x7F,0xFE,0x42,0x02,0x82,0x04,0x7F,0xF8,0x04,0x00,0x07,0xF0,0x0A,0x10,0x11,0x20,0x20,0xC0,0x43,0x30,0x1C,0x0E,/*"爱",7*/
"你",0x08,0x80,0x08,0x80,0x08,0x80,0x11,0xFE,0x11,0x02,0x32,0x04,0x34,0x20,0x50,0x20,0x91,0x28,0x11,0x24,0x12,0x24,0x12,0x22,0x14,0x22,0x10,0x20,0x10,0xA0,0x10,0x40,/*"你",8*/
"很",0x08,0x00,0x0B,0xF8,0x12,0x08,0x22,0x08,0x4B,0xF8,0x0A,0x08,0x12,0x08,0x33,0xF8,0x52,0x44,0x92,0x48,0x12,0x30,0x12,0x20,0x12,0x10,0x12,0x88,0x13,0x06,0x12,0x00,/*"很",9*/
"久",0x04,0x00,0x04,0x00,0x04,0x00,0x07,0xE0,0x08,0x20,0x08,0x20,0x10,0x40,0x20,0x40,0x40,0x80,0x00,0x80,0x01,0x40,0x02,0x40,0x04,0x20,0x08,0x10,0x30,0x08,0xC0,0x06,/*"久",10*/

编译测试,烧录

参考连接:
https://blog.csdn.net/qq_43279579/article/details/111414037

https://blog.csdn.net/cleveryoga/article/details/121446734?utm_source=app&app_version=4.18.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

STM32的0.96寸OLED显示屏显示数据相关推荐

  1. 基于STM32的0.96寸OLED显示屏显示数据和滚动显示

    文章目录 一.SPI 二.OLED显示屏显示数据 2.1 代码实现 2.2 结果展示 三.0.96寸OLED滚动显示数据 3.1 滚动方式 3.2 对显示文字进行取模 3.3 代码实现 3.4 结果展 ...

  2. 基于STM32F103C8T6的0.96寸OLED显示屏显示数据

    一.了解SPI(串行外设接口) SPI全称是Serial Perripheral Interface,也就是串行外围设备接口.SPI是Motorola公司推出的一种同步串行接口技术,是一种高速,全双工 ...

  3. 基于STM32的0.96寸OLED显示屏显示固定数据、滑动数据、温湿度数据

    目录 OLED显示原理 一.实验工具 二.OLED显示固定数据 1.显示数据相关函数 2.main函数 3.总显示函数 4.取字模 5.实现效果如下: 三.OLED实现滑动显示数据 1.添加滑动命令 ...

  4. 基于STM32的0.96寸OLED显示屏显示汉字+数字

    文章目录 一.SPI协议 1.什么是SPI协议 2. SPI 协议的物理层和协议层 二.0.96寸OLED屏 三.使用OLED屏显示数据 1.下载程序 2.打开工程 3.部分代码 4.编译并烧录 5. ...

  5. 基于STM32的0.96寸OLED屏显示学号姓名和滚动显示

    文章目录 **一.SPI(串行外设接口)** **二.使用0.96寸OLED显示屏显示学号姓名** **三.0.96寸OLED在STM32f103上实现滚动显示长字符** **四.参考资料** 一.S ...

  6. 关于基于stm32的0.96寸oled显示屏的学习理解心得。

    关于基于stm32的0.96寸oled显示屏的学习理解心得. oled粗了解 如何理解OLED分辨率? 这里0.96寸OLED分辨率是12864;即OLED显示是128行64列; 但是由于OLED不能 ...

  7. 【STM32】0.96寸OLED显示屏(7针SPI协议)软件模拟SPI

    Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性 [自制展示]2020鼠年大吉 文章目录 概述 3.1硬件设计 3.2软件设计 3.2.1编程要点 3.2.2代码 ...

  8. STM32实现0.96寸OLED显示模拟IIC和IIC四种实现(标准库和HAL库)

    目录 本文通过四种方法实现OLED显示 设备选择 OLED介绍 接线表设计 OLED应用 1.标准库模拟IIC实现OLED显示 2.标准库IIC实现OLED显示 3.HAL库模拟IIC实现OLED显示 ...

  9. 0.96寸OLED显示屏标准库移植HAL库(模拟IIC) - 基于STM32

    ** 0.96寸OLED显示屏标准库移植HAL库,使用模拟IIC ** 由于项目的需要使用OLED屏显示,并且现有的项目程序是基于HAL库编写的,而手头能找到的程序是标准库的驱动程序,大概看了一下代码 ...

最新文章

  1. SA-SSD:阿里达摩院最新3D检测力作(CVPR2020)
  2. js 获取电脑 硬盘序列号_来将何人报上名来!解密电脑是如何识别硬盘的
  3. C语言程序设计 | 动态内存管理:动态内存函数介绍,常见的动态内存错误,柔性数组
  4. linux 下安装JDK
  5. vscode tab键快捷生成元素html标签
  6. elementuiDemo1.1
  7. 【小程序】【Tips】【实践】Json 的对象 和 Json字符串 的区别和转换
  8. npm命令Error: EINVAL: invalid argument, mkdir
  9. Say“No”,你学会了吗?
  10. php strom 快捷键,PHPStorm常用快捷键总结
  11. 金税盘显示frm000013_开票软件(金税盘版)2020年4月征期抄报方法/季报方法!
  12. vs vsvim viemu vax 备忘
  13. Max Script|多边形的控制
  14. 虚拟机桥接模式下的网络设置
  15. 杨辉三角c语言实验收获体会,实验感想与心得体会简短
  16. UltraCompare比较文件时出现UTF8_ConvertorForMac无转换符号!
  17. CSS新招式,临时记一下
  18. Qt调试错误:The inferior stopped because it received a signal from the Operating System.SIGSEGV
  19. 【OAK开源项目教程】opencv+python实现测量包装盒尺寸和体积
  20. 浅谈css3的3D动画效果并制作一个简单的旋转照片墙

热门文章

  1. JS 事件代理和事件委托
  2. Java日期——获取今天是星期几
  3. 查询计算机系教师开设的所有课程的课程号和课程名
  4. 苹果6s plus信号显示无服务器,苹果iPhone 6Splus手机一直无服务如何解决
  5. MacM1-Miniconda相关合集
  6. 2018新版个税计算器
  7. 使用ROS驱动激光雷达YDLIDAR-G4的详细过程总结(教你避开使用的各种坑....)
  8. C语言实现万年历系统
  9. python 声音强度检测_python检测音频中的静音
  10. 小记——linux定时器之alarm