单片机-实用应用
以STM32为主,主要介绍与分享单片机相关的实用知识整理。主要为框架和软件能不借助第三方库,全部自己实现的相关知识
不吃鱼的猫丿
这个作者很懒,什么都没留下…
展开
-
STM32实用应用系列:Json数据格式 与 cJSON的使用
一、Json的简介(1)Json的简介JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。(2)Json的两种结构对象:由大括号{ } 包含的 键值对(关键字 - 值){ ...原创 2020-12-17 11:33:51 · 2117 阅读 · 2 评论 -
STM32实用应用系列:串口接收不定长数据(HAL库 UART + DMA)
一、串口接收不定长数据的实现思路在串口通信中,我们很多时候是需要接收不定长的数据,并且对接收到数据放入到缓存中,等待接下来的处理。整一个流程大致如下:实现方法:串口 空闲中断; DMA接收数据:(循环模式、不使用中断)1、可以得知已经的数据长度: BuffSize - DMA.Instanc->NDTR 【进而可以通过两次数据长度相减,得到本次传输的数据长度】 2、数据处理:可以将接收到的数据从DMA缓存中存入到自定义的 队列缓存 中(队列结构体),后续要处理的时候再从...原创 2020-12-10 17:20:52 · 5508 阅读 · 0 评论 -
STM32-SPI资料整理
一、SPI的简介1、SPI物理层SPI 一般使用4条线进行通信:NSS:为片选线 MOSI: 主机数据输出、从机数据输入 MISO:主机数据输入、从机数据输出 SCK:时钟线,由主机提供时钟输出2、协议层(1)SPI基本通讯时序(2)起始信号与停止信号开始信号:NSS 由 高变低 停止信号:NSS 由 低变高(3)数据有效性SPI 使用 SCK线进行数据同步,MOSI与MISO在SCK的每个时钟周期传输一位数据、且数据的 输入 与 输出 是同步进行的 进行数原创 2020-12-08 11:30:20 · 678 阅读 · 0 评论 -
STM32-I2C资料整理
一、I2C的简介I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、 CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 I2C是半双工通信 I2C只有两根双向通信线: 一根是时钟线SCL, 一根是数据线SDA I2C总线通过上拉电阻接电源,当总线空闲的时候,两根线均为高电平。各器件之间的SCL与SDA 都是 “线与” 关系二、I2C的时序1、数原创 2020-11-17 20:16:13 · 1501 阅读 · 1 评论 -
STM32按键状态机的实现
目录一、按键状态机的作用二、按键状态机的实现1、按键状态机的宏定义2、按键状态机的枚举与相关结构体3、按键状态机的函数实现一、按键状态机的作用一般的按键状态机一般都具有以下功能:能够判断哪个按键按下 能够判断按键是长按或者短按 能够记录对应按键按下对应的次数实现思想:首先,通过定时器或者查询方式等周期性查询按键状态机的状态 接着在按键状态机中,需要获取得到对应按下的按键,然后通过对按键的前后状态进行对比,如果没有改变,则增加按键时间。如果按键松开,则对按键结构体进原创 2020-11-13 15:40:00 · 3880 阅读 · 2 评论 -
STM32:Base64加密与解密的实现
一、Base64的介绍二、Base64加密与解密的实现原创 2020-09-08 13:42:46 · 2305 阅读 · 1 评论