单片机
文章平均质量分 51
嵌入式Linux系统开发
熟悉硬件、STM32单片机、嵌入式 Linux、Android。
展开
-
一文带你了解蓝牙
1、蓝牙概念蓝牙,是一种支持设备短距离通信(一般 10m 内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。优点是方便快捷、灵活安全、低成本、低功耗的数据通信和语音通信。2、背景1998 年 5 月,爱立信、诺基亚、东芝、 IBM 和英特尔公司等五家著名厂商, 在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术,其宗旨是提供一种短距离、低成本的无线传输应用技术。蓝牙名字的由来: “蓝牙” 这名称来自 10 世纪的丹麦国王哈拉尔德的外号。出身原创 2022-04-23 20:38:14 · 4072 阅读 · 0 评论 -
微信公众号自动回复如何添加超链接
先用电脑进入公众号后台网页管理系统https://mp.weixin.qq.com/进入以后,在功能下面,有个自动回复,有三个选项,有“关键词回复”、“收到消息回复”、“被关注回复”。这里我们在被关注回复中设置超链接。格式为<a href="网址">名称</a>例如<a href="https://mp.weixin.qq.com/s/LIWoOQ-syR5gDSQIszD4Lg">自我介绍在这里</a>效果如下:欢迎关注我的微信公众号原创 2020-12-24 22:24:19 · 3121 阅读 · 0 评论 -
ROM与RAM
RAM、SRAM、DRAM、SDRAM、DDR SDRAM、ROM、PROM、EPROM、EEPROM、NAND flash、NOR flash原创 2020-11-23 20:31:42 · 365 阅读 · 1 评论 -
Soc片上系统和非Soc的区别
像电脑这种,CPU和内存,USB分立的,就不是Soc像STM32或者S3C2440,这种单片机或者嵌入式芯片,是Soc,因为在它的一个芯片内部,除了CPU还继承了各种SD卡、USB、SPI、LCD等,直接引出IO引脚级就可以用的,就称之为片上系统(一个芯片内部集成了一个大的系统)。...原创 2020-11-16 19:27:04 · 1314 阅读 · 0 评论 -
error: ‘for’ loop initial declarations are only allowed in C99 mode
报错如下比如写出下面这段程序:for (int i = 0; i < n; ++i){ do_something();}然后用gcc编译,会报 ‘for’ loop initial declarations are only allowed in C99 mode的错误。原因是在循环条件中声明变量,只在C99标准中支持,C90标准不支持。所以改成:int i;for (i = 0; i < n; ++i){ do_something();}这样编译就可以通过原创 2020-10-17 22:03:36 · 295 阅读 · 0 评论 -
C语言三剑客:C陷阱与缺陷、C和指针、C专家编程
有需要的私聊我,发给你。原创 2020-10-16 17:43:41 · 850 阅读 · 4 评论 -
IWDG独立看门狗和WWDG窗口看门狗
IWDGSTM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。WWDG窗口看门狗跟独立看门狗一样,也是一个递减计数器不断的往下.原创 2020-10-14 20:09:19 · 356 阅读 · 0 评论 -
STM32F103VETV的ADC精度
STM32f103 系列有 3 个 ADC,精度为 12 位,每个 ADC 最多有 16 个外部通道。其中ADC1 和 ADC2 都有 16 个外部通道,ADC3 根据 CPU 引脚的不同通道数也不同,一般都有8 个外部通道。ADC 的模式非常多,功能非常强大,具体的我们在功能框图中分析每个部分的功能。...原创 2020-09-25 12:43:41 · 1674 阅读 · 0 评论 -
pcs单位
pcs是一种计量单位 ,即pieces的缩写,就是个、件的意思。可以说是数量单位,不是计量单位。原创 2020-08-10 09:20:06 · 15553 阅读 · 0 评论 -
pin to pin 的意思
比较两个IC时,经常用到pin to pinpin to pin的意思是指两个IC的pin角功能完全一致,封装也完全一致换句话说,如果你以前用的IC没有了,可以找一个pin to pin 的IC完全替代,而不用更改PCB的设计。原创 2020-08-04 11:11:24 · 26993 阅读 · 0 评论 -
IIC和SPI优缺点
用哪种协议首先肯定是看这个芯片支持什么协议。其次再考虑如下:IIC不考虑电源和GND的情况下,两条线,SCL时钟线和SDA数据线,同一个IIC总线上可以挂载2^7-1一共127个设备,不过由于寄生电容的存在,挂载不了这么多,但就算挂载几个设备,也节省主控IO口资源。同一条IIC总线上,不同设备靠设备地址区分。由于只有两条线,所以是半双工通信,通信速度慢。SPI不考虑电源和GND的情况下,SPI有四根线,片选信号CS,时钟SCLK,主输入从输出MISO,主输出从输入MOSI。所以占用主控IO较原创 2020-08-04 10:50:31 · 2880 阅读 · 0 评论 -
ARM7三级流水线
MIPS(Million Instruction Per Second)表示每秒多少百万条指令。比如0.9MIPS,表示每秒九十万条指令。执行指令的上升,得益于多级流水线制度。3级流水线如上图所示(PC为程序计数器),流水线使用3个阶段,因此指令分3个阶段执行。⑴ 取指从存储器装载一条指令⑵ 译码识别将要被执行的指令⑶ 执行处理指令并将结果写会寄存器以前学过的51单片机,因为比较简单,所以它的处理器只能完成一条指令的读取和执行后,才会执行下一条指令。这样,PC始终指向的正在“执行”的指令。而原创 2020-07-17 09:58:51 · 1790 阅读 · 0 评论 -
EEPROM与flash的区别
EEPROM,不用擦除直接写,而flash要擦除再写原创 2020-07-15 12:05:49 · 271 阅读 · 0 评论 -
BVT、DVT、PVT、EVT
EVT: Engineering Verification Test工程验证测试产品开发初期的设计验证。设计者实现样品时做初期的测试验证,包括功能和安规测试,一般由RD(Research&Development)对样品进行全面验证,因是样品,问题可能较多,测试可能会做N次。DVT: Design Verification Test设计验证测试解决样品在EVT阶段的问题后进行,对所有信号的电平和时序进行测试,完成安规测试,由RD和DQA(Design Qualiy Assurance)验证。原创 2020-07-06 09:58:25 · 1867 阅读 · 0 评论 -
芯片参考手册和数据手册的区别
数据手册有关产品技术特征的基本描述,包含产品的基本配置(如内置Flash和RAM的容量、外设的数量等),管脚的数量和分配,电气特性,封装信息,和定购代码等。参考手册有关如何使用该产品的具体信息,包含各个功能模块的内部结构、所有可能的功能描述、各种工作模式的使用和寄存器配置等详细信息。通常在芯片选型的初期,首先要看数据手册以评估该产品是否能够满足设计上的功能需求; 在基本选定所需产品后,需要察看技术参考手册以确定各功能模块的工作模式是否符合要求;在确定选型进入编程设计阶段时,需要详细阅读技术参考手册获原创 2020-06-29 15:26:07 · 1238 阅读 · 0 评论 -
RAM、SRAM、DRAM、SDRAM、DDR SDRAM、ROM、PROM、EPROM、EEPROM、NAND、NOR
一、RAM:random access memory(随机存取存储器)SRAM:静态随机存储器,就是它不需要刷新电路,不像动态随机存储器那样,每隔一段时间就要刷新一次数据。但是他集成度比较低,不适合做容量大的内存,一般是用在处理器的缓存里面。像S3C2440的ARM9处理器里面就有4K的SRAM用来做CPU启动时用的。DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据。 而且是行列地址复用的,许多都有页模式。SDRAM:同步动态随机存储器,像电脑的内存就是用的这种RAM叫DDR SDRAM。其原创 2020-06-29 12:10:45 · 1506 阅读 · 0 评论 -
地铁安检处的液体检测仪原理
相信大家都有这样的经历,乘坐地铁出行时,若背包内携带了液体,在安检处总会被安检员要求进行液体检测,只需将液体放在液体检测仪上,在几秒内就能判断待测物是否安全。那么,这神奇的液体检测仪到底是什么原理呢?液体检测仪是一款专门用于探测易燃、易爆危险液体的安检仪器,国际上有多种液体检测技术,如拉曼光谱法,即发射一束激光到液体,根据不同物质反射回来的光谱特征不同,来区分液体种类;适用于非金属容器的微波识别技术;适用于金属容器的热传导法等。目前我国地铁应用最为广泛的是Quasistatic Electrical T转载 2020-06-28 13:40:03 · 1812 阅读 · 0 评论 -
C语言中enum(枚举)
枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。枚举语法定义格式为:enum 枚举名 {枚举元素1,枚举元素2,……};接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:#define MON 1#define TUE 2#define WED 3#define THU 4#define FRI 5#define SAT 6#define SUN 7这个看起来代码量就比较多,接下来我们看看转载 2020-05-29 13:38:17 · 604 阅读 · 0 评论 -
ESD(Electro-Static discharge)静电阻抗器
ESD(Electro-Static discharge)的意思是"静电释放"。ESD是20世纪中期以来形成的以研究静电的产生、危害及静电防护等的学科。因此,国际上习惯将用于静电防护的器材统称为ESD,中文名称为静电阻抗器。ESD 设计要求整机、单板具有良好的静电泄放路径,且泄放路径上没有敏感信号PCB 布局PCB 的每一层建议有一圈完整 GND,宽度不小于 0.5mm(20mils),且尽...原创 2020-05-02 14:33:33 · 1997 阅读 · 0 评论 -
GPIO电流倒灌问题(防倒灌)
在单片机的使用中,有这样一种现象:当断开单片机的供电,而通过IO口连接的外围电路未断电时,单片机还有一定的工作能力(如寄存器还能保持数据,液晶显示不清除,LED指示灯继续发亮,还能进行串口通信等)在实际应用中,当串口芯片与主控IC譬如MCU等器件一同使用时,如果串口直连的双方器件有一方不需要供电工作时,要注意一方电流对另一方电流的倒灌导致未供电的芯片继续工作的情况(这种情况也可能会造成芯片工作异...原创 2020-05-02 12:43:20 · 9614 阅读 · 2 评论 -
IIS 音频总线学习(一)(二)
IIS 音频总线学习(一)数字音频技术一、声音的基本概念声音是通过一定介质传播的连续的波。重要指标:振幅:音量的大小周期:重复出现的时间间隔频率:指信号每秒钟变化的次数声音的传播携带了信息,它是人类传播信息的一种主要媒体。 声音的三种类型:波形声音:包含了所有声音形式语音:不仅是波形声音,而且还有丰富的语言内涵(抽象→提取特征→意义理解)音乐:与语音相比,形式更规范。音乐...转载 2020-05-01 15:03:40 · 1342 阅读 · 0 评论 -
I2S音频总线
Inter-IC SoundI2S(Inter-IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专门用于音频设备之间的数据传输,广泛应用于各种多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。规范在飞利浦公司的I...原创 2020-05-01 14:51:12 · 669 阅读 · 0 评论 -
STM32 ADS8365 高精度 ADC 采集方案
硬件原理图(实际上可以6路输入,这里4路)数据手册中关键点数据手册在这里下载https://www.alldatasheetcn.com/ADS8365.c/****************************************----------------------------- * | PB.12: (ADS8365_nEOC) PA9 ...原创 2020-04-26 23:31:44 · 2616 阅读 · 4 评论 -
STM32 LCD12864 原理和实现代码
硬件原理图LCD12864.c你主要看每个功能函数是如何实现的/**************************************** * 按照自己的硬件电路图来设置 * -------------------------- * | PB.09: (LCD_BLK) | * | PC.06: (LCD_RST) ...原创 2020-04-26 14:09:47 · 1444 阅读 · 3 评论 -
STM32之GPIO的CRL、CRH、IDR、ODR、BSRR、BRR、LCKR寄存器
STM32中控制GPIO状态的一共有7个寄存器,分别是CRL、CRH、IDR、ODR、BSRR、BRR、LCKR。调用即可看到选项原创 2020-04-25 22:32:16 · 7685 阅读 · 0 评论 -
STM32的GPIO八种工作模式
typedef enum { GPIO_Mode_AIN // 模拟输入 GPIO_Mode_IN_FLOATING // 浮空输入 GPIO_Mode_IPD // 下拉输入 GPIO_Mode_IPU // 上拉输入 GPIO_Mode_Out_OD // 开漏输出 GPIO_Mode_Out_PP // 推挽输出 GPIO_Mode_AF_OD // 复用开漏...原创 2020-04-25 20:39:59 · 887 阅读 · 0 评论 -
PID控制的原理以及C代码实现
数字式 PID 控制算法可以分为位置式 PID 和增量式 PID 控制算法(常用)位置式 PID 算法:由于计算机控制是一种采样控制,它只能根据采样时刻的偏差计算控制量,而不能像模拟控制那样连续输出控制量量,进行连续控制。增量式 PID 算法:所谓增量式 PID 是指数字控制器的输出只是控制量的增量 ∆uk 。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式 PID 控制...原创 2020-04-21 13:04:21 · 1157 阅读 · 1 评论 -
写中断程序要注意哪些方面
与每类I/O设备相关的进程都有一个靠近内存底部的地址,称作中断向量。 它包括中断服务程序的入口地址。当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请...原创 2020-04-21 10:13:34 · 4243 阅读 · 0 评论 -
UART、USART、IIC、SPI
UART与USART都是单片机上的串口通信,他们之间的区别如下:首先从名字上看:UART:universal asynchronous receiver and transmitter通用异步收/发器[Bus Signal] TX , RXUSART:universal synchronous asynchronous receiver and transmitter通用同步/异步收/发...原创 2020-04-15 11:27:25 · 907 阅读 · 1 评论 -
keil5_STM32框架图
常用实际上另一种原创 2020-04-15 10:28:32 · 955 阅读 · 0 评论 -
C语言_多个文件共用一个变量_关键字extern的应用
main.c//第一个文件main.c#include <stdio.h>extern int a; //全局变量声明 int main(){ printf("%d\n",a+1);}two.c//另一个文件sub.cint a=3; //变量定义原创 2020-04-10 13:54:09 · 562 阅读 · 0 评论 -
函数指针和指针函数
指针函数定义指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式为:*类型标识符 函数名(参数表)看看下面这个函数声明:int fun(int x,int y);这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,是一个数值。接着看下面这个函数声明:int *fun(int x,int y);这和上面那个函数...原创 2020-04-03 20:50:21 · 133 阅读 · 0 评论 -
IIC、SPI、UART、CAN、RS485、USB、PCI速率
IICS(标准模式)测量与控制场合,100kb/sF(快速模式),速率为 400kb/sHs(高速模式),速率为 3.4Mb/s。具体看器件要求,单片机一般是400k或以下常用。IIC协议是有规定的,其总线的容性负载要求,目前最高的1M左右。普通的芯片只有 低速 100K 与 高速 400K 两种规格。如果通信距离较远,导线的分布电容较大,而上拉电阻又取得太时,信号上升时间不够,接收方就...原创 2020-03-29 21:16:17 · 3303 阅读 · 0 评论 -
中断全过程
中断全过程指的是从中断源发出中断请求开始,CPU响应这个请求,现行程序被中断,转至中断服务程序,直到中断服务程序执行完毕,CPU再返回原来的程序继续执行的整个过程。大体上可以把中断全过程分为5个阶段:中断请求、中断判优、中断响应、中断处理和中断返回。中断处理过程基本上由3部分组成:第一部分为准备部分,其基本功能是保护现场,对于非向量中断方式则需要确定中断源,最后开放中断,允许更高级的中断请求...原创 2020-03-27 18:54:19 · 1682 阅读 · 0 评论 -
动态库和静态库
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。...原创 2020-03-25 23:58:04 · 142 阅读 · 0 评论 -
IIC总线最多可以挂多少个设备
由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件。但是IIC协议没有规定总线上device最大数目,但是规定了总线电容不能超过400pF。管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。总线之所以规定电容大小是因为,IIC的OD要求外...原创 2020-03-25 23:50:43 · 11977 阅读 · 0 评论 -
arm9有多少个寄存器
ARM920T有31个通用的32位寄存器和6个程序状态寄存器,这37个寄存器分为7组,进入某个工作模式时就使用它的那组寄存器。有些寄存器,不同的工作模式下有自己的副本,当切换到另一个工作模式时,那个工作模式的寄存器副本将被使用:这些寄存器被称为备份寄存器。从下图中可以看出fiq模式的备份寄存器最多,这是为了提高fiq的响应速度,减少保存寄存器值所花费的时间。...原创 2020-03-22 11:17:17 · 3102 阅读 · 0 评论 -
串口通信校验方式(even,odd,space,mark)
无校验 (no parity)奇校验 (odd parity):如果字符数据位中"1"的数目是偶数,校验位为"1",如果"1"的数目是奇数,校验位应为"0"。(校验位调整个数)偶校验 (even parity):如果字符数据位中"1"的数目是偶数,则校验位应为"0",如果是奇数则为"1"。(校验位调整个数)mark parity:校验位始终为1space parity:校验位始终为0奇偶...原创 2020-03-21 20:19:26 · 2489 阅读 · 0 评论 -
SPI、CAN、I2C、I2S、SSP总线的介绍和比较
一、SPI总线串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,Motorola公司生产的绝大多数MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI 用于CPU与各种外围器件进行全双工、同步串行通讯。SPI可以同时发出和接收串行数据。它只需四条线就可以完成MCU与各种外围器件的通讯,这四条线是:串行...转载 2020-02-26 17:00:00 · 2095 阅读 · 0 评论 -
10种常用的软件滤波方法及示例程序(以及硬件滤波)
滤波,就是滤除不想要的东西,留下想要的东西,不管是硬件滤波还是软件滤波。先说一下硬件滤波(五种常用的,电路和模电里面学过)软件滤波:一、限幅滤波法A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因...原创 2019-12-21 16:58:33 · 5571 阅读 · 0 评论