自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(390)
  • 收藏
  • 关注

原创 开源一个可以调RGB三色的小灯棒子

开源一个可以调灯的小灯棒子。主控用的STC8G1K08A-SOP8,RGB三色灯是WS2812B。开源到立创开源广场了,可以直接进入下方链接,那边可以直接查看原理图和PCB。一个可调RGB三色的小灯棒子 - 立创开源硬件平台一个可调RGB三色的小灯棒子https://oshwhub.com/zctnb/diao-guang-deng通过观察板子下面三个灯来调整板子上两排的灯的颜色,下面三个灯分别表示RGB,并且也只亮对应的颜色,比如说最左边的灯只有红色的亮度,蓝和绿的亮度都是0。这边可以稍微讲解一下WS28

2025-02-23 20:36:24 1336

原创 使用ESP-IDF来驱动INMP441全向麦克风

它和I2C是什么关系?这个可以参考ADC来理解,我们的ADC也是有左对齐和右对齐的,假设我们的数据是12位的,而传输数据是按照16bit传输的,这时候12bit填不满16bit,我们就需要选择是将数据左对齐还是右对齐了。然后我们要注意的是,我们要读取的数据长度得是3的倍数,因为INMP441的数据是24bit的,所以我们需要按照顺序把三个byte拼接起来,由于数据类型没有24bit的,所以我们只能使用32bit的数据类型。

2025-02-23 20:35:54 1519 2

原创 I2S是什么通信协议?它如何传输音频数据?它和I2C是什么关系?

这个可以参考ADC来理解,我们的ADC也是有左对齐和右对齐的,假设我们的数据是12位的,而传输数据是按照16bit传输的,这时候12bit填不满16bit,我们就需要选择是将数据左对齐还是右对齐了。我们平时打吃鸡可以听声辨位,最主要的原因就是有左右声道,我们左右耳机的声音其实是不一样的,而我们的大脑可以同时处理这两个声道的声音,从而根据声音来判断敌人的位置。我们刚刚说了WS是声道选择线,而WS同时也是帧同步线,它一个周期就表示一帧,而一帧的数据里包含左声道和右声道的数据,所以WS的频率就等于音频的采样率。

2025-01-20 13:17:13 1607 1

原创 【STC库函数】PWM的使用

结构体的第三个是duty占空比,实际上是设计阈值,这个值的范围是0~65535,我们使用PWM模式1,所以当计数器的值小于这个阈值的时候输出有效电平,而计数器的值的上限是刚刚自动重装载寄存器的值,所以通过设置duty和period的比例可以调整占空比。PWM模式1比较常用,向上计数的时候(一般也就是向上计数),当计数器的值小于阈值的时候OCnREF输出高,也就是输出有效电平,反之输出反,这个有效电平是可以由我们自己设置的,可以是高电平或者是低电平。其他更多的功能详情小伙伴可以自行去手册里查看。

2025-01-15 11:07:43 994 1

原创 【STC库函数】I2C的使用(拿SGP30测试一下)

可以来看一下它的参数。然后要获取气体数据的时候就发送0x20和0x08两个字节的命令让它采集数据,接着再接收6个字节的数据,其中第一第二个字节是二氧化碳的数据,第三字节是前俩字节的CRC校验,第四第五字节是TVOC的数据,第六字节是TVOC数据的CRC校验。写在开头,为什么我文章里写的不是I2C而是IIC,因为它们俩是一样的东西写成啥都可以,虽然大家平时看到的更多的是I2C,但是写成IIC的话,会比较方便我码字。不过我们也有解决的办法,那就是把SGP30的命令的后一个字节放到要发送的数据里,效果是一样的。

2025-01-15 11:07:16 858

原创 【STC库函数】SPI的使用(拿W25Q64测试一下)

由于我们的主循环是1ms执行一下这一坨代码,所以每个等待时间就是1ms,上面代码的意思就是如果串口收到数据了,那么我等它5ms,每收到一次数据,就会在中断函数里把等待时间刷新为5,我在main函数里每隔1ms把等待时间减1,如果我能够把它减到0,那么表示至少是5ms没有收到数据了,那我就把数据取出来发送回去。对SPI有些了解的小伙伴应该知道,当我们发送数据的时候,同时也会收到数据,在STC这里SPI收数据和串口收数据是一样的,在中断处理函数里,默认帮我们把数据给存起来了,我们只需要直接使用即可。

2025-01-14 14:03:05 872

原创 这可能是全网最详细的关于OV7670的文章

最离谱的是有一个非官方的文档(但是写的其实还行),里面有简单介绍了一下 OV7670摄像头模块,看得出来这文档是真正的技术人员写出来的(比如像我这种,写东西就非常的口语化,一看就知道是真敲过代码才写东西的 ),然后我在那个XX电子的文档里看见了几乎一样的(没错,就是我买的YY科技店铺然后给的XX电子的链接里的资料),为什么我说几乎一样呢?还有一些寄存器在初始化的时候反反复复配置了好几次,我直接?最后生效的是最后一次配置的,那你之前配置干嘛?我寻思OV7670关于配置寄存器也没有时序的要求啊?

2025-01-14 14:00:52 3721 13

原创 【STC库函数】Compare比较器的使用

所以就是光强到了一定程度,电压小于1.19V了,比较器输出低电平,光强弱到一定程度,电压大于1.19V,那么比较器输出高电平,我在输出端接了个LED,这样看的结果就很明显了。比较的结果可以选择从P34或者P41输出,同时还可以有上升沿和下降沿的中断,也可以通过读取CMPRES来查询结果,是一个只读位。需要注意的是,我们选择比较器输出端引脚以及打开ADC和选择ADC通道都需要去操作寄存器,上述代码中我有注释,可供小伙伴们参考。下面的代码中,我使用的ADC通道0作为比较器输入的正极,负极就用的内部1.19V。

2025-01-02 11:19:31 976

原创 三只脚的电感是什么东西?

这样大家应该就能理解为什么三脚电感的电感量有两个了,以上面那个25uh:800uh(也有写成25uh+800uh的)的为例,三脚电感的短边的电感量就是25uh,长边的就是800uh。生出来的电磁线又穿过长边的电感,再电生磁,因为长边的电感量更大,线圈数更多,所以通样的电磁线,长边生出的电就更大,也就有了升压的效果。如果我们去某宝买三脚电感的话,有俩参数,一个是封装,一个是电感值,和其他电感不一样的是,三脚电感的电感值有俩。如果是贴片的话,就更好办了,中间那个就是公共端,顶上有个小疙瘩的那边就是长边。

2024-12-27 21:34:32 1638 5

原创 手把手教你如何按键消抖

当按键进行抖动的时候,A的电平是在0和1之间飘忽不定的,重点来了,因为是与非门,A和D一起控制的C,由于D是0,所以不管A如何波动,都不会影响C和D的输出,这也就是RS消抖的原理,不过我认为实际上不是消抖,而是直接忽略了抖动。而我们一般是拿按键来用作外部中断的,外部中断条件常用的就是上升沿和下降沿(后续文章我们默认用的是下降沿触发中断),当按键在抖动的时候,很有可能触发多次外部中断,所以按键消抖是我们不得不面对的一个问题。

2024-12-27 21:33:36 1488

原创 【STC库函数】ADC模数转换器的使用

官方提供的最小系统图也就是俩电容,一个10uf以上,一个100nf,虽然说10uf以上,但是10uf应该也可以,我是因为手头上22uf的电容比较多,所以用的22uf,大家也可以根据自己的库存去决定,反正打板出来焊盘大小都是一样的,一样封装的都是可以随便替换。一个STC8G1K08A-SOP8的官方推荐零售价是0.59 + 0.1,所以小伙伴们买的时候注意价格,我买的时候是0.75,因为价格差的不多并且是从经常买的店铺里卖的,所以就不管这点差价了,总之大家买的时候别买价格太离谱的。是选择ADC结果对齐方式。

2024-12-22 13:58:55 1402

原创 准备做毕设了?这几款单片机你用得上

这个点要准备做毕业设计了吧,比起怎么做,我觉得最难的还是定什么题目。今天我们就来看看有哪些单片机可以用在毕业设计上(咱不谈SOC哈,虽然SOC和单片机这俩其实可以归为一个大类)。我就依靠着我为数不多的经验来给我用过的几款单片机来评个分,满分五颗星,可以给小伙伴们参考参考。纯粹是一家之言,大家看我有理就看,觉得没理就直接忽略。

2024-12-22 13:58:13 2300

原创 【STC库函数】UART异步串口通信的使用

由于我们的主循环是1ms执行一下这一坨代码,所以每个等待时间就是1ms,上面代码的意思就是如果串口收到数据了,那么我等它5ms,每收到一次数据,就会在中断函数里把等待时间刷新为5,我在main函数里每隔1ms把等待时间减1,如果我能够把它减到0,那么表示至少是5ms没有收到数据了,那我就把数据取出来发送回去。有俩定时器可以用,不过我们优先使用定时器3,因为串口2(同步串口)只能使用定时器2,为了避免冲突,我们使用定时器3,不过如果你确定用不到串口2的话使用定时器2也是可以的。

2024-12-20 15:56:52 1157 1

原创 【STC库函数】WDT看门狗定时器的使用

一种是IDLE模式停止计数,另一种是继续计数,IDLE就是一种低功耗的工作模式,叫空闲模式,核心停止处理命令,但是外设什么的照常运行,没什么特殊要求我们就给个停止计数。上一篇我们讲了定时器,今天的WDT看门狗定时器实际上就是一个定时器,只不过普通的定时器溢出是进入中断,而看门狗溢出就是直接复位重启单片机。还有个很关键的一个问题,那就是如果我们仅仅配置了上面第一个函数,那么我们看门狗复位之后会直接进入USB下载模式,而不是重新执行程序。如果我们写入0则是没有任何用的,如果写入1的话,就是把对应的标志位清除。

2024-12-20 15:56:24 522

原创 【STC库函数】Timer定时器的使用

了解了定时器资源和工作模式之后,我们简单看看手册里对于定时器物理结构的描述,因为手册里列出了7种(定时器0的0123工作模式和定时器1的012工作模式)有点多,所以我们这边就只看看定时器0的模式0意思意思。定时器有四种工作模式,模式0为16位自动重装载(也是最常用的),模式1为16位不自动重装载,模式2为8位自动装载,模式3为16位不可屏蔽中断自动重装载。我们从左往右一个个看,首先是SYSclk,也就是系统时钟,不管是STC8还是STC32都是24MHz,记得在烧录的时候,在烧录软件里选择24MHz。

2024-12-16 18:22:49 1219 1

原创 【STC库函数】EXTI外部中断的使用

在此之前我们先聊聊NVIC,NVIC是嵌套向量中断控制器(Nested Vectored Interrupt Controller),也就是说我们有很多个中断源的时候,是有可能有冲突的,这时候就需要靠NVIC来处理中断嵌套。因为STC的库函数里有NVIC这一部分,不过STC里的NVIC是中断系统而不是嵌套向量中断控制器,但是它们的功能是一样的,也就是说此NVIC非彼NVIC。里面初始化的函数就这一个,一个是外部中断号,另一个是结构体变量的指针,但是这个结构体只有一个成员,那就是中断触发的方式。

2024-12-15 21:20:03 955 1

原创 【STC库函数】GPIO通用输入输出口的使用

官方提供的最小系统图也就是俩电容,一个10uf以上,一个100nf,虽然说10uf以上,但是10uf应该也可以,我是因为手头上22uf的电容比较多,所以用的22uf,大家也可以根据自己的库存去决定,反正打板出来焊盘大小都是一样的,一样封装的都是可以随便替换。一个STC8G1K08A-SOP8的官方推荐零售价是0.59 + 0.1,所以小伙伴们买的时候注意价格,我买的时候是0.75,因为价格差的不多并且是从经常买的店铺里卖的,所以就不管这点差价了,总之大家买的时候别买价格太离谱的。今天的内容就到这边了。

2024-12-14 16:43:19 1235

原创 【STC库函数】环境搭建&使用官方例程

官方提供的最小系统图也就是俩电容,一个10uf以上,一个100nf,虽然说10uf以上,但是10uf应该也可以,我是因为手头上22uf的电容比较多,所以用的22uf,大家也可以根据自己的库存去决定,反正打板出来焊盘大小都是一样的,一样封装的都是可以随便替换。一个STC8G1K08A-SOP8的官方推荐零售价是0.59 + 0.1,所以小伙伴们买的时候注意价格,我买的时候是0.75,因为价格差的不多并且是从经常买的店铺里卖的,所以就不管这点差价了,总之大家买的时候别买价格太离谱的。

2024-12-11 16:16:34 1532 1

原创 开源自己设计的STC核心板,集成STC32和STC8一次性学习两款芯片

官方提供的最小系统图也就是俩电容,一个10uf以上,一个100nf,虽然说10uf以上,但是10uf应该也可以,我是因为手头上22uf的电容比较多,所以用的22uf,大家也可以根据自己的库存去决定,反正打板出来焊盘大小都是一样的,一样封装的都是可以随便替换。一个STC8G1K08A-SOP8的官方推荐零售价是0.59 + 0.1,所以小伙伴们买的时候注意价格,我买的时候是0.75,因为价格差的不多并且是从经常买的店铺里卖的,所以就不管这点差价了,总之大家买的时候别买价格太离谱的。

2024-12-10 17:12:06 1223 1

原创 自己设计的板子程序死活烧录不进去,沉思三天后我悟了

因为之前出现过很奇怪的一件事,我焊了两块ESP32C3WROOM的核心板就是我之前开源出来的那个,然后一个可以烧录另一个烧录不了,板子设计是没问题,所以我估计要么是虚焊要么是某个元器件坏了,但是我已经把工具都收起来了,所以打算下次再尝试修一修,结果下一次我焊接的时候想着顺手修一下,结果两块板子都可以正常烧录程序进去。所以我把问题定位在了USB转串口芯片身上,也就是CH340,并且由于串口能识别到,所以CH340的功能是没有问题的,如果转串口的功能是没问题的,那么那短暂的识别串口失败就是因为供电的问题!

2024-12-07 23:30:27 1385 1

原创 介绍几个电池充电管理芯片(LTH7R、HP4059)

其实如果手册没提,那么就表示这个电容的容值没那么重要,咱按照经验判断挑个不大不小差不多的弄上就行,甚至我们就直接参考上面LTH7R的都行。采用的是SOT23-5的封装,一共是五个引脚,扣掉GND,VCC(电源输入),BAT(电池正极)就剩了俩,可以说是非常简洁了。根据它的命名,一共是可以有三种支持的电池电压,分别是4.18V,4.2V,4.35V还有4.4V,但是表格没列出4.4V。可以参考一下人家的电路,我找到一个设计是VCC接的是10uf的电容,而VBAT接的是1uf的电容。

2024-12-06 10:03:03 2031

原创 开源自己设计的ESP32-C3-WROOM核心板

首先BOOT引脚我们知道,默认是上拉的,而EN引脚实际上就是RESET复位引脚,默认也是上拉的,我们一般会接一个按钮,按下之后会拉低EN的电平,芯片停止工作,按下后松开NE恢复高电平,芯片重新启动。如果我们需要ESP32C3WROOM支持USB下载的话,我们还需要把USB的D+和D-接到模组的D+和D-,这款核心板我是接上了,所以理论上是可以用USB下载的,但是我没试过,因为我用的VSCode不支持给ESP32用USB下载。这里引脚要对应上,RXD要接到CH340的TXD,TXD要接到CH340的RXD。

2024-12-06 10:02:11 1553

原创 从UART串口通信聊到RS232和RS485

一般来说我们单片机使用UART通信用的TTL电平标准,但是传输距离短,接口不固定,所以有了RS232,不仅定义了接口,还是把高低电平的范围扩大了,这样能够在一定程度上减轻受到干扰所收到的影响,但是干扰还是有的,所以有了RS485,我们用了差分信号,这样能够进一步减轻干扰,延长通信距离,代价就是由全双工变成了半双工,好处也是有的,那就是可以组建通信局域网了,由原本的一对一变成多对多通信。输入的电平>2V就认为是高电平,输入的电平<0.8V就认为是低电平。

2024-12-04 17:45:35 1056 1

原创 今天我们不点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 1852 1

原创 介绍几个电池充电管理芯片(TP4057、ME4069)

另外在VCC的输入端,和BAT的输出端各需要一个电容,推荐值分别是4.7~10uf和1~10uf,为了省事我们可以给这俩电容用同一个大小的,比如都用4.7uf或者是都用10uf。TP4057停机模式的静态电流也更小(上图列的是待机模式,但查看后面的表格发现实际上是停机模式是25uA,如果是待机模式则是45uA),只有25uA,也就是更低功耗一些。比起TP4056,它少了两个引脚,一个是使能(CE),一个是温度检测引脚(TEMP),这俩我们用的也少,正好省掉。采用的是电流模式PWM降压型开关控制结构。

2024-11-25 10:53:21 2322

原创 手把手教你做校园地图NFC卡(以洛阳理工为例)

芯片也是不分正负的,我们只需要走线绕着PCB绕几圈就行,至于走多少圈,我们注意两个指标,一个的导线的匝数,另一个是围成的圈的面积,差不多绕个十来圈意思意思就行。当导线围成的圈中的磁通量改变的时候,就会有电流产生,这时候有了电流芯片就能工作一下,把芯片内的数据发送出去,我们也就可以读到卡的信息了。

2024-11-25 10:37:40 1563 2

原创 【ESP-IDF】讲解SPP蓝牙串口官方Demo并按需修改

我们留意一下我框出来的事件,也就是连接和断开连接的这俩事件,这应该是比较值得做文章的两个事件,我们再额外留意一下我用绿框框出的变量is_connected,通过这个变量的值我们可以知道此时是否有连接上蓝牙,比如说后续我们有数据要通过蓝牙发送到手机上的时候,如果我们没有连接上,那么就不能发送。这个函数接收三个参数,第一个是事件类型,第二个是GATT的接口类型,具体什么意思我也不太清楚,最后一个是参数,这个参数的类型是一个枚举类型,枚举里包含很多种结构体类型,在遇到不同的事件类型的时候可以使用不同的结构体。

2024-11-22 12:34:56 1646 1

原创 GPIO的工作模式一次性给你讲清楚

所以开漏模式通常用在单片机的高电平与外部需要的高电平不匹配的时候,比如说我单片机是3.3V的,而我要控制的模块是5V的,这时候我们就可以使用开漏模式,然后在外部加个5V的上拉电阻。而NMOS管的是低电平,忽略NMOS,我们就需要定义低电平了,但是低电平一般是下拉电阻接地,同一套系统里的设备基本都是要共地的,你另外整一个“地”岂不是造反?比较常见的说法是GPIO有八种工作模式,但我们先抛开这种先入为主的观念,不要去死记硬背,我们理解了GPIO是如何工作的之后,自然就知道它的工作模式了。

2024-11-17 16:46:08 722

原创 你真的了解电感吗

还记得我们上一篇的电容吗,万物皆电容,开关也可以看作是一个容值非常小的电容,当它充满之后,剩下的电流就会形成很高的电压,直到电流慢慢减到0(实际上也没那么慢,但是这么高的尖峰电压对我们的电路是致命的),然后电压维持到一开始供给的10V。之前我们介绍了电容,实际上电感和电容一样都是储能元件,只不过电容释放能量的方式是电压,因此电容两端的电压不能突变,而电感释放能量的方式是电流,所以电感两端的电流无法突变。电路是上面这样的,为了方便计算用了10V的直流电,俩100欧的电阻,以及100uh的电感。

2024-11-17 16:45:34 641 1

原创 你真的了解电容吗

缺点是对脉动电流的耐受能力差,若损坏易呈短路状态,最大的缺点就是贵(这应该算是我的缺点),并且不是很安全,这边不是很安全的意思是一旦出了意外,造成的后果会比其他类型的电容更严重。简单来说,电容可以储能,把电压存储起来,当电压加在电容两侧的时候,电容的两个导电板可以存储电荷,当电压发生突变的时候(例如电源突然断开的时候)可以释放储存的电荷以达到电容两侧的电压无法突变的特性(但是两侧可以同时突变)夸张一点,人导电吧?没开玩笑哈,真的是万物皆电容,你找俩导电的平面,中间夹着一些介质,这就可以看成是一个电容了。

2024-11-16 15:11:36 967

原创 拆解一下用了两年的三十多块的剃须刀

把这壳子拆掉发现下面就是俩LED,当它们亮的时候,同时照亮上面外壳上的图标,否则一般情况下在剃须刀外面是看不到的,这一点设计我觉得还挺巧妙的。用我浅薄的知识推断一下这部分电路的作用应该是,当USB有电的时候,负极连通电池的负极,达到一个充电的效果(不对的话可以纠正)。开关在下图框出来的位置,按下的时候手感不错,感觉比我新的原价129现价85的剃须刀(可以猜一下啥牌子的)还好。充电的接口用的micro B,搞得我充电还得拿充电宝给它充电,因为现在大多数用的都是Type-C口了。拆下来的电机我也笑纳了。

2024-11-15 14:30:36 756

原创 支付宝碰一碰,你不要太离谱了

今天我们就来玩玩这个NFC模块,其实买来好久了,一直懒得动,最近有点懈怠了就硬着头皮拿来玩玩,就是下面这个东西。并且碰一碰只是俩设备握个手交换个信息,大部分的交易过程是在云端完成的,这也大大提升了安全性,起码大家不用担心在路上被人碰一下,手机里的钱就被“偷”走了。首先用起来还是很丝滑的,不用再扫码,然后确认支付按指纹了,只需要打开手机,碰一下就行,这比扫码支付方便不少。而支付宝的碰一碰使用的是读卡模式,也就是说商家的“读卡机”才是卡,我们的手机才是读卡机。

2024-11-15 14:29:44 3140

原创 开源迷你收音机,成本不到五元,这不得做一个送给小美?

右边第一个是LDO芯片,因为我们的锂电池是3.7V的,我们要转成3V,这电压差的有点小,一般的LDO估计还不行,不过到底还是被我找到了这样一个对于压差要求非常低的LDO了,外围电路只需要两个电容即可。右边第二个是电源切换的一个电路,因为我们既有电池,也有USB供电,用了这个电路之后,就会优先使用USB的电,如果USB没有电,那么用的才是电池的电。这边就提一点,就是PROG的电阻,充电电流的设置是靠这颗电阻的,计算公式是I = 1200/R,一般来说,我们尽量让充电电流为电池容量的一半。

2024-11-13 16:10:48 2505 1

原创 整流桥如何把交流变直流?

当交流电顺时针流动时(即看作上面是正极,下面是负极),那么A点的电压值是220V,经过AB之间的二极管后,B点的电压值就是219.3V,因为二极管会消耗掉0.7V的压降(一般情况下是这样),接着我们暂时忽略负载,上图中我用了个1KΩ的电阻当作负载。说到整流,就不得不提二极管,二极管就拥有正向导通,反向截止的特性,具体情况要看二极管的参数,根据参数的不同还可以分为稳压二极管、肖特基二极管等等,我们接下来提的二极管我们默认为理想二极管,也就是说我们不管它的反向电压、工作频率、整流电流这些参数。

2024-11-13 16:09:42 1210

原创 分析自动下载电路是如何工作的以及CH340的选型

其实几乎所有芯片都大差不差,懂了一款之后,接触新的芯片之后看看手册也知道应该如何下载了,选择ESP32-C3是因为前阵子设计了一款ESP32-C3的核心板,最近无聊焊接测试了一下没问题,所以顺手就以它为例吧,最近没什么事的话再找时间整合一下开源出来,今天先来讲讲关于串口烧录的部分。首先BOOT引脚我们知道,默认是上拉的,而EN引脚实际上就是RESET复位引脚,默认也是上拉的,我们一般会接一个按钮,按下之后会拉低EN的电平,芯片停止工作,按下后松开NE恢复高电平,芯片重新启动。

2024-11-04 21:22:40 2601 2

原创 (非广)拆解一下从支付宝白嫖的钥匙扣

支付宝为了推广碰一下支付,最近搞了活动(其实已经搞了一个月了),集卡换东西,我寻思着也换不着啥好东西,就换个这个钥匙扣。虽然型号不完全一样,但是前面的英文是一样的,看人家这应用电路也是用在播放音频上,我想应该是大差不差的。经常可以刷到拆解电子产品的文章,我一想,我好歹也沾点边,我为什么不能写一些拆解电子产品的文章呢?以上就是拆解的全部内容了,写完的时候我看向了我用了快三年的剃须刀,双十一了正好该换换了,嘿嘿……把正面的按键键帽拔掉后露出了蓝色的键轴,不懂是什么轴,懂的小伙伴可以评论区告诉我。

2024-11-04 21:22:06 389 1

原创 电子元器件常见封装类型

今天来聊聊电子元器件都有哪些常见的封装类型。DIP封装,全称为Dual In-line Package,即双列直插封装。相信很多小伙伴都是从51单片机入门的嵌入式,而大多用的51单片机型号是STC89C52,就是下面这种。像这种两排引脚直接连出来这么长的就是DIP,准确说这种STC89C52的封装是DIP-40,后面接的数字表示接出来的引脚数,两边各20,一共是40。再比如我手上这款DCDC芯片的封装类型就是DIP-8,因为一共是8个引脚。

2024-10-27 18:06:36 1583 1

原创 用Linux下的socket手撕MQTT,妈妈再也不用担心我学不会了

今天我们来手撕MQTT。经过我们前几天对于使用socket套接字进行TCP通信的学习,我们已经具备了手撕MQTT的前置技能点了。先简单了解一下MQTT的机制。在此之前有几个名词我们得先混个眼熟。topic,主题。subscribe,订阅。publish,发布。明白这仨就可以了。我们连接上MQTT服务器(Broker)之后,可以做的操作有俩(其实不止,这里简化了),一个是订阅,一个是推送。订阅什么呢?订阅主题。发布什么呢?发布主题。

2024-10-27 16:00:01 1264

原创 LeetCode-3185 构成整天的下标对数目Ⅱ

但是有个小细节,那就是余数为0和余数为12的是特例,因为它们是和自己本身这种类型的数进行配对的,这就需要用到高中数学的排列组合了(我忘了,百度的)。所以我们可以把数组里的数全部取余24,余数相同的数我们完全可以把它们当成是同一个数,这样就可以把很多个数据给分为24种(0~23)假设余数为1的数有n个,而余数为23的数有m个,那么这两批数是可以两两配对的,所以得到的下标对是n*m。今天的每日一题是昨天的升级版,昨天的数据量比较小直接暴力就完事了,今天数据量上升,暴力就不行了。

2024-10-23 18:21:01 278

原创 一文带你入门socket套接字Linux网络编程

因为套接字句柄本质上就是文件描述符,跟我们打开一个文件获取的文件描述符其实是没什么差别的,所以写数据和读数据是可以使用write和read的,这俩函数大家应该非常的不陌生,我就不介绍了,这边说说send和recv吧,跟write和read是对应的,也是用来收发数据的。这是比较粗糙的一个服务器,仅供我们入门socket网络编程,真要拓展开的话还有好多内容,包括多线程,多进程,IO复用等等等等,因为咱也不是干这个的,所以也没过多了解,感兴趣的小伙伴可以自己找些资料学习学习。

2024-10-22 21:40:18 745

200行C++代码写一个qt串口助手

200行C++代码写一个qt串口助手

2024-01-11

200行C++代码写一个Qt俄罗斯方块

200行C++代码写一个Qt俄罗斯方块

2023-09-20

200行c++代码写一个扫雷小游戏

200行c++代码写一个扫雷小游戏

2023-08-12

150行代码写一个Qt井字棋小游戏

150行代码写一个Qt井字棋小游戏.完整的VS工程文件,以及自己绘制的图片

2023-07-31

200行代码写一个简易的Qt界面贪吃蛇

200行代码写一个简易的Qt界面贪吃蛇

2023-07-30

100行代码写一个简易Qt点名程序

100行代码写一个简易Qt点名程序

2023-07-30

51单片机红绿灯 仿真+代码

protues+keil 完整仿真工程文件+c源代码 可作课设,使用51单片机完成的简易红绿灯. 使用定时器,外部中断.

2023-07-19

C++简易小黑窗贪吃蛇(200行代码)

适合C++初学者巩固语法练习的简易小黑窗贪吃蛇. 使用VS2019,不是用VS的也可以直接复制cpp和h文件.

2023-07-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除