
硬件模块
文章平均质量分 95
折途想要敲代码
这个作者很懒,什么都没留下…
展开
-
使用ESP-IDF来驱动INMP441全向麦克风
它和I2C是什么关系?这个可以参考ADC来理解,我们的ADC也是有左对齐和右对齐的,假设我们的数据是12位的,而传输数据是按照16bit传输的,这时候12bit填不满16bit,我们就需要选择是将数据左对齐还是右对齐了。然后我们要注意的是,我们要读取的数据长度得是3的倍数,因为INMP441的数据是24bit的,所以我们需要按照顺序把三个byte拼接起来,由于数据类型没有24bit的,所以我们只能使用32bit的数据类型。原创 2025-02-23 20:35:54 · 2531 阅读 · 3 评论 -
这可能是全网最详细的关于OV7670的文章
最离谱的是有一个非官方的文档(但是写的其实还行),里面有简单介绍了一下 OV7670摄像头模块,看得出来这文档是真正的技术人员写出来的(比如像我这种,写东西就非常的口语化,一看就知道是真敲过代码才写东西的 ),然后我在那个XX电子的文档里看见了几乎一样的(没错,就是我买的YY科技店铺然后给的XX电子的链接里的资料),为什么我说几乎一样呢?还有一些寄存器在初始化的时候反反复复配置了好几次,我直接?最后生效的是最后一次配置的,那你之前配置干嘛?我寻思OV7670关于配置寄存器也没有时序的要求啊?原创 2025-01-14 14:00:52 · 6995 阅读 · 20 评论 -
今天我们不点LED,我们点WS2812B
这也难不倒我,经过我一顿操作和计算,STC8G1K08A的主频为24MHz,一个_nop_()大概耗时是63+ns,其实我计算的结果应该是44ns,因为1/24 000 000 约等于是40ns,但是我拿着40一个_nop_()的结果去写代码,发现好像不对劲,最后定位在了一个_nop_()大概耗时是60+ns。1码和0码差不多,高低电平是顺序一样,都是先高电平后低电平,不一样的是持续时间,持续时间其实也差不多,就是高低电平的时间反过来,所以我们1码的高电平时间定为0.6us,低电平时间定为0.3us。原创 2024-11-30 16:05:10 · 2465 阅读 · 2 评论 -
【硬件模块】SHT20温湿度传感器
我们要获取温湿度的话,首先先发送从机地址+写,接着我们发送触发测量的命令,等待测量完毕之后再发送从机地址+读,等到SHT20给我们了ACK回应之后,我们接收3个byte,分别是数据的高8位,数据的低8位,CRC校验码。另外在数据的低8位中的最后两位,是状态位,如果是“00”,那么表示这个数据是温度,如果是“10”则表示这个数据是湿度,但是这个其实没啥用,因为读出啥数据取决于我们之前发送的测量命令,我们要做的就是将最后两位清零,因为最大分辨率为14bit。原创 2024-09-15 17:57:48 · 2740 阅读 · 0 评论 -
【硬件模块】DS18B20温度传感器
DS18B20是只需要一根通讯线的温度传感器。首先先看看它的通信时序,一共就仨,初始化时序,写时序,读时序。第一个,初始化时序,我们(MCU)先拉低总线最少480us,然后释放总线(拉高)。DS18B20收到上升沿之后会在15~60us之后把总线拉低,拉低60~240us之后再释放总线。这样一套流程下来我们就算是初始化DS18B20了。那我们要做的就是先把MCU用于和DS18B20通信的那个引脚设置为输出模式。然后拉低480us(可以稍微久一点,但是我试过了,480us是没问题的)后,再拉高。原创 2024-09-11 16:46:54 · 2823 阅读 · 0 评论 -
【硬件模块】PN532 NFC读卡串口通信
PN532是一款功能丰富的非接触式通讯收发模块,其基于8051单片机核心,集成了多种通信接口和工作模式,以满足不同应用场景的需求。综上所述,PN532是一款功能强大、高度集成的非接触式通讯收发模块,具有多种通信接口、工作模式、高度兼容性和灵活的配置方式。这些功能使得PN532能够广泛应用于各种需要非接触式通信的场合,如物联网、移动支付、智能门禁等。以上介绍来自文心一言。今天我们就来玩玩这个NFC模块,其实买来好久了,一直懒得动,最近有点懈怠了就硬着头皮拿来玩玩,就是下面这个东西。原创 2024-07-03 10:43:20 · 8654 阅读 · 2 评论 -
【硬件模块】SGP30气体传感器
这是SGP30官方文档里开头的介绍,简单来说就是SGP30是一个数字多像素气体传感器,然后具有长期稳定性和低漂移。这些我们都不用管,我们只需要知道SGP30是通过I2C来通信的,并且可以采集的数据有CO2和TVOC的含量。TVOC是“Total Volatile Organic Compounds”,意思是总挥发性有机化合物。可以来看一下它的参数。TVOC的输出范围是0~60000ppb,而CO2的范围是400~60000ppm。一开始没注意范围,我看CO2一直都在400以上还以为出了啥问题。原创 2024-07-03 10:48:34 · 6907 阅读 · 3 评论 -
【硬件模块】SSD1306 OLED屏幕(含GD32&ESP32驱动代码)
最近在写GD32的文章,之前STM32有OLED屏幕来展示数据,ESP32可以直接打印到电脑屏幕上,GD32的话手上就没有办法了。虽然是可以直接把STM32的OLED屏幕的驱动代码改改移植到GD32上面,不过想了想干脆写一个文章来说说如何驱动,也当是锻炼一下看文档的能力了。没错,SSD1306也是只有英文文档,找网站直接翻译中文的效果不太好,不过我还是把译文结合原文再看看江科大的STM32的OLED驱动代码给啃了啃,因此这很考验我的耐心。原创 2024-06-14 19:39:35 · 5008 阅读 · 1 评论 -
【硬件模块】ST7735S(1.8寸TFT-LCD)
SPI,英文全称Serial Peripheral Interface,即串行外围设备接口,是一种高速、全双工、同步的串行通信总线。我们之前说过I2C,那么我们就拿I2C和SPI做个对比。SPI和I2C对比,优势在于SPI的传输速率比I2C快得多,劣势在于SPI需要用的通信线比较多。SCK(Serial Clock):串行时钟线,由主设备产生,用于同步数据传输。MOSI(Master Output Slave Input):主机输出从机输入线,主设备通过这条线发送数据给从设备。原创 2024-06-04 17:42:23 · 5400 阅读 · 3 评论 -
【硬件模块】ESP-01SWiFi模块基于AT指令详解(WiFi,TCP/IP,MQTT)
ESP-01S是由安信可科技开发的一款Wi-Fi模块。其核心处理器是ESP8266,该处理器在较小尺寸的封装中集成了业界领先的Tensilica L106超低功耗32位微型MCU,带有16位精简模式,主频支持80MHz和160MHz,并集成了Wi-Fi MAC/BB/RF/PA/LNA。在硬件连接方面,ESP-01S模块需要与主控制器(如Arduino、STM32等)进行连接,通过串行UART接口与主控制器进行数据传输。原创 2024-05-11 17:19:41 · 9221 阅读 · 2 评论 -
【硬件模块】DHT11数字式温湿度传感器模块
今天在这边新开一个系列,那就是硬件模块。后续会把之前写过的硬件模块再写一遍,因为之前都是使用的STM32来驱动模块的,而现在我快速上手ESP32系列也快结束了,因此我在原本文章的基础上再加上使用ESP32来驱动的部分构成硬件模块这个系列。当然了,也不是吃老本的,这个系列也会写一些之前都没用过的模块,今天就先以DHT11这个之前都没写过的模块来开个头。原创 2024-05-02 15:42:58 · 3473 阅读 · 3 评论