星水天河
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32 SPI的NSS引脚配置
以STM32F103RCT6芯片为例,查芯片手册,可以看到SPI1的NSS引脚对应PA4引脚,那么这个NSS引脚作用是什么?SPI通信需要有MOSI、MISO、SCLK、CS(Chip Select)四个引脚。一般SPI的从机的片选端(CS)为低电平时,从机被选中,此时从机才能正常工作。所有的主机和从机其实都有片选信号,只有片选了,才能工作。而SPI的主机要正常工作,片选端需要为高电平。但是从...原创 2020-01-29 22:20:54 · 5775 阅读 · 2 评论 -
SCCB总线协议的详细讲解与程序实现
一、SCCB简介SCCB(Serial Camera Control Bus)是OmniVision公司公布的串行相机总线协议。OV开头的相机模块例如OV7670都使用SCCB协议。鉴于它与I2C协议类似,为了方便,本文将其SIO_C线称为SCL,SIO_D线称为SDA。主要讲解两线SCCB协议的内容与程序实现(stm32平台,其他平台也可参考)。二、电路连接图对于两线SCCB,只需连接SIO_C和SIO_D即可。三、协议的内容与程序实现②两线SCCB总线协议分析:<1>传输开始标原创 2020-05-11 14:54:59 · 10539 阅读 · 5 评论 -
LCD1602原理与Proteus仿真
1 LCD1602简介LCD分为段式、点阵式两种,其中点阵式又分为字符模式与图形模式两种。段式LCD最常见的应用场景就是计算器,其显示效果类似于LED数码管。点阵式的图形模式LCD最常见的应用场景就是电视、计算机显示屏、手机屏幕等。而我们要介绍的LCD1602就是字符模式的LCD,如下图所示。可以看到上面由一个个5*8的点阵组成,每个点阵都能够显示一个字符,因此称为字符模式LCD。LCD1602模块内部包含了一个DDRAM(DataDisplay)、CGRAM(Character generate)原创 2020-06-29 16:24:34 · 22491 阅读 · 1 评论 -
获取蓝牙模块HC-05模块地址(物理地址)的方法
在使用蓝牙模块的时候,如果要用AT指令进行主机和从机的配对,需要知道从机的物理地址,那么从机的物理地址如何获取呢?方法一如果你的从机也是一个蓝牙模块,那么将蓝牙模块通过USB转TTL模块连接至电脑。通过串口助手发送AT+ADDR?指令,即可获取模块本身的物理地址。举例说明:模块蓝牙设备地址为:12:34:56:ab:cd:ef发送:AT+ADDR?\r\n返回:+ADDR:1234 :56:abcdefOK方法二有的时候,我们的蓝牙模块并不是一个独立的模块,而是作为一个子模块,被焊接在原创 2020-10-12 19:34:59 · 5910 阅读 · 0 评论 -
步进电机原理 Proteus仿真及硬件实现(详细)
1 步进电机原理1.1 步进电机简介步进电机是将输入的电脉冲信号转换为角位移或线位移的元件。在不超负载运作的情况下,电机的转速以及停止的位置只取决于脉冲的个数和脉冲的频率。脉冲数越多,电机的角位移越大,脉冲频率越高,电机的转速越快,但不能超过最高频率,否则力矩减小,电机不转。1.2 电机拆解内部结构左图为定子,电机转动过程中,定子是不动的,故称为定子。可以看到定子中包含了十二个线圈。关于圆心对称的一对线圈称为一个相。图中定子为6相。右图为转子,步进电机的转子上布满了沿轴向的齿,图中细密的红色的条原创 2020-06-17 19:09:14 · 33212 阅读 · 11 评论 -
设置蓝牙主从机上电自动配对的方法
有时候,我们希望蓝牙的主机在上电之后自动完成与从机的连接,而无需在每次上电后都发送一些AT指令来完成主从机的配对,该怎么做呢?1、首先完成从机的设置:AT+ROLE=0 //设置为从机AT+PSWD=xxxx //xxxx是配对密码,根据需要设定AT+UART=115200,0,0, //波特率115200,根据自己需要改变,一位停止位,无校验2、设置蓝牙主机:AT+ROLE=1 //设置为主机AT+PSWD=xxxx //与从机配对密码一致AT+UART=115200,0,0,原创 2020-10-12 20:05:59 · 5409 阅读 · 0 评论 -
STM32 LCD屏绘制折线图(曲线图)
在做温度、湿度等显示的时候,折线图是十分有用的。当采样点足够密集的时候,折线图也近似成曲线图。下面介绍基于正点原子STM32 F1开发板的LCD屏折线图绘制。屏幕大小2.8寸 320*240实现绘制折线的函数如下:函数的功能是对于入口参数的短整型数据绘制到LCD屏上,并连接成折线。我们采用横屏显示的方式,因此只有240个像素点可以用来表示输入的数值,那么如何把输入的数据与240个像素点对应起来?这里采用了分段的对应方式。rawValue/280,这样对于短整型的rawValue(-32768~32原创 2020-10-03 20:23:11 · 21623 阅读 · 23 评论 -
两种方式实现矩阵键盘扫描(含程序)
1 矩阵键盘的结构下图是一个4*3的矩阵键盘示意图,三条列线连接P1.4-P1.6引脚。四条行线连接P1.0-P1.3引脚2 逐行逐列扫描法首先使三条列线所连接的I/O引脚P14-P16输出低电平,四条行线所连接的I/O引脚P10-P13输出高电平。当没有按键按下时,四条行线所连接的I/O引脚读取到的将全部是高电平;而当有按键按下时,由于该按键所在的行线与列线接通,行线将被下拉到低电平。此时读取行线所连接的引脚P10-P13,将不再全是高电平,由此可以判断出有按键按下。判断有按键按下后,还要用逐行逐原创 2020-08-05 20:06:16 · 43139 阅读 · 21 评论 -
Proteus中以中断方式实现矩阵键盘的扫描
前言最近做单片机的课程设计用到矩阵键盘,在此做个记录。1 矩阵键盘的扫描方式使用矩阵键盘时,首先要判断是否有按键按下,这个过程称为矩阵键盘的全局扫描。单片机对于键盘按下的响应方式一般有三种:(1)定时扫描:利用定时器每间隔一段时间扫描一次键盘(2)程序扫描:在程序运行的过程中,当有必要了解是否有按键按下时,调用键盘扫描函数进行扫描(3)中断扫描:当有按键按下时,触发外部中断。网络上关于矩阵键盘的扫描方式的介绍多局限于(1)和(2)两种方式,这两种方式在单一的矩阵键盘的实验中是可行的,但对于一个复杂原创 2020-06-21 14:18:11 · 5123 阅读 · 2 评论 -
51单片机串口通信的程序实现与Proteus仿真
一、51单片机的串口通信关于51单片机串口通信的讲解的博客有很多,这里就不再详细讲解。下面给出程序1.uart.h#ifndef __UART__#define __UART__typedef unsigned char u8;void UART_Init();void UART_Send_Data(u8 byte);u8 UART_Receive_Data();#endif2.uart.c#include "reg52.h"#include "uart.h"//串口初始化原创 2020-05-19 14:26:12 · 31227 阅读 · 10 评论 -
STM32 ESP8266 微信Airkiss智能配网连接WiFi并接入OneNET
你是否还在直接将wifi的ssid和密码直接写入STM32程序中通过串口发送给ESP8266?本文教你用微信Airkiss协议实现可视化地为ESP8266发送WiFi ssid和密码信息并连接WiFi,并使STM32主控设备接入OneNET。微信Airkiss协议是微信提供的一款为设备配网的技术。它为ESP8266配网的原理可以简单理解为:微信尽管不知道我们所使用的ESP8266的物理地址,但以Airkiss协议发送WiFi信息后,只要ESP8266工作在Station混杂模式下(开启了SmartConf原创 2022-05-02 11:07:22 · 5625 阅读 · 0 评论 -
stm32 LCD屏显示自绘图案
本文基于正点原子的stm32F103开发板和TFTLCD,代码中用到了部分函数也由正点原子提供。LCD显示图案的原理LCD上的每个像素点的颜色以及点亮与否都可以由代码来控制,在正点原子提供的函数中void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color);就可以将坐标为(x,y)的像素点设置为指定颜色。因此我们只需知道我们要绘制的图案长为多少像素、宽为...原创 2020-02-03 20:26:49 · 15663 阅读 · 14 评论 -
BMD101传感器协议解析与STM32实现(LCD显示波形)
1 前言BMD101传感器是神念科技开发的心电传感器。目前有一些商家开发了BMD101传感器模块,基本上都是利用蓝牙直接传输数据到PC或手机端。而本文介绍通过串口将数据传送给单片机,并在单片机上完成数据解析和心电波形LCD显示的功能。2 通信协议解读BMD101 通过 UART 接口通信。这是一个标准的 UART 接口,定义为 1 个起始位,8 个数据位,1 停止位格式,波特率 57600。串口输出的数据包格式如下:包括Header(帧头)、data payload(数据有效载荷)、CRC校验原创 2021-01-21 20:33:03 · 8756 阅读 · 6 评论