自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(351)
  • 资源 (5)
  • 收藏
  • 关注

原创 按键与中断

没按下时KEY1连接R16到3V3,所以没按下时是高电平,按下时导通到GND,按下是低电平按键是输入,按键对应的GPIO这个不需要设置上拉和下拉。

2026-01-03 20:10:29 67

原创 STM32F4串口通信原理与应用

LSB 低位在前,MSB高位在前串口1。

2025-12-31 00:14:24 176

原创 STM32F407 systick延迟

SystemCoreClock:STM32F4 的核心时钟(默认 / 常用为 168MHz,即 168,000,000 Hz)所以 168MHz = 168 × 1000000 次 / 秒 = 168000000 次 / 秒。168,000,000/1000/1000=168次/us,1us有168次,要多少us乘多少。MHz(兆赫兹) = 10^6 Hz(1 兆 = 100 万)Hz(赫兹) = 「次 / 秒」(每秒完成的周期数)168MHz 是 STM32 内核时钟的频率。

2025-12-27 22:29:12 158

原创 机械狗软件部分

/---按键//按键标志//按键标志//上次按键时间//消抖时间 ms//上次按键时间//消抖时间 ms//---ADC定义//分压器比例(输入电压到ADC电压的比例)//分压比(8.4倍缩小)//电压范围(电池电压)//电压为0%时//电压为100%时//采样次数//计算电池电压//---舵机//舵机引脚//---屏幕//SCL引脚5 SDA引脚4//---WIFI账号密码const char *ssid ="猪八戒";

2025-12-22 22:01:05 327

原创 【梅花】2.工程模板的搭建

国内所有的STM32的板子主时钟晶振和那个STM32官方板子上的主时钟晶振是不一致的。如果没有定义HSI_VALUE,HSI_VALUE的值就是16000000。国内基本8M,官方基本25M,所以要修改HSI_VALUE和PLL_M。分频器PLL_M 也修改为8,和HSI是匹配的。

2025-12-15 00:10:47 201

原创 9.5 【定时器】输入捕获

比如捕获上升沿,如果选择1分频,那每出现一个上升沿,右边就会触发一个cc1事件,执行1次拍照动作,如果选择2分频,就要出现2次上升沿,才会产生一个cc1事件,并且进行拍照,依次类推,一般都设置1分频,用的比较少。通道1和通道2有交叉引脚的箭头,通道3和通道4有交叉引脚的箭头,说明它们的信号是可以交叉引用的。CH1捕获上升沿,此时CNT=2,就会拍照给事件cc1,那CCR1=2。CH2捕获下降沿,此时CNT=8,就会拍照给事件cc2,那CCR2=8。输入滤波模块是用来滤除输入信号这些细小的毛刺的。

2025-12-13 23:14:24 211

原创 机器狗原理

每一个舵机大概要200-250mA电流,4个舵机就要差不多1A的电流了,4个舵机要1A,加上oled等其他的,要1200mAh的电池才行,如果要买小了,机器狗可能不动,一卡一卡的一个电池充电后满电4.2V,那两个电池串联就8.4VLDO稳压搞两次目的是5V给舵机供电,3.3V给OLED屏幕供电如果1117只搞一个5V,因为4个舵机要1V,还有OLED屏幕,而1117数据手册是1V,这样会很烫。

2025-12-08 21:31:31 260

原创 9.4 呼吸灯实验

通过呼吸灯实验来看一下输出比较在实际编程中是如何写代码的原理:Tim_CH1正常输出配置PA8,Tim_CH1N互补输出配置PB13,让两个灯交替闪烁通过调整CCR1就可以控制PWM信号的占空比可调输出比较模式设置PW1,当CNT<CCR的时候,OCxRef输出高电压,否则输出低电压。

2025-12-03 11:46:18 787

原创 9.3【定时器】输出比较

定时器的4个通道输入捕获用来测量外部输入信号的一个时延参数,比如测量输入信号的周期、占空比、脉冲宽度等等所有和时间有关的参数寄存器的右边是输出比较,输出比较的作用是通过定时器去产生精确定时的方波信号,然后通过引脚把方波信号输出出去,因为此时的方波信号是通过定时器产生的,定时器本身时间精度就是特别高的,所有它产生的方波信号的精度也是特别高的,所以我们可以使用方波信号驱动各种各样的外部设备,可以达到非常好的效果。

2025-11-30 22:05:14 479

原创 关于C51的中断

C51有5个中断,外部中断0(INT0),外部中断1(INT1),定时器中断T0,定时器中断T1,串口中断(RX TX)定义外部中断名,C51函数名可以随便,只要有后面的interrupt有标识就行,不像32。比如使用外部中断0,先定义一个函数,直接在main函数中调用。比如INF0 也就是。

2025-11-29 12:32:37 176

原创 9.2【定时器】自制延迟函数

随便选择一个定时器实现定时函数。

2025-11-25 00:06:21 134

原创 9.1【定时器】时基单元

单片机内部所有跟时间有关的操作几乎都会用到定时器定时器分为3种,高级定时器、通用定时器、基本定时器功能最全的就是高级定时器,在高级定时器基础上阉割一部分功能就得到通用定时器,再阉割一部分功能就是基本定时器对于STM32F1系列的定时器来说内部最多有14个定时器,其中定时器1和定时器8是高级控制定时器,定时器6和定时器7是基本定时器,定时器2-5和9-14是通用寄存器定时器总体的结构框图。

2025-11-24 21:30:41 754

原创 onenet接口

【代码】onenet接口。

2025-11-21 21:39:26 51

原创 MQTT.fx接收下发消息控制LED

sys/产品ID/产品名称/thing/property/set。

2025-11-18 21:41:04 153

原创 MQTT.fx模拟数据上传ONENET

打开MQTT.fx连接。onenet文档中心。

2025-11-17 17:28:26 255

原创 OneNET创建产品以及MQTT.fx模拟登录

产品开发 - 物联网平台。

2025-11-16 22:17:47 353

原创 数 码 管

Write74HC164是基础的 “单字节串行发送” 工具,WriteDisplayArray则是基于它实现的 “多字节批量发送” 功能 —— 前者负责将单个段码拆分为串行信号,后者负责协调多个段码的发送顺序和初始复位,共同完成多位数码管的显示驱动。关键逻辑:利用 74HC164 的级联特性(前一级的串行输出接后一级的串行输入),先发送的数据会被后发送的数据 “推” 到后续寄存器,最终所有Len个段码会分别存入对应的 74HC164,并行输出驱动多位数码管。每次循环先拉低时钟PCLK=0,准备数据;

2025-11-15 16:38:55 273

原创 51实现矩阵

【代码】51实现矩阵。

2025-11-15 11:42:42 110

原创 STM32F103配置寄存器

以引脚Pin0为例,GPIOx_CRL的低 4 位(MODE0[1:0]和CNF0[1:0])定义其配置:MODE0[1:0]:配置输出模式的速度(输入模式时为 00)。00:输入模式(复位状态)01:输出模式,最大速度 10MHz10:输出模式,最大速度 2MHz11:输出模式,最大速度 50MHzCNF0[1:0]:配置引脚的工作模式(输入 / 输出类型)。输入模式下:00:模拟输入01:浮空输入10:上拉 / 下拉输入11:保留。

2025-11-12 16:49:25 355

原创 智能家居项目-搭建工程

如果定义了 STM32F10X_CL 宏(表示使用 STM32F10x CL 系列芯片,如 STM32F105/107),则默认外部晶振频率为 25MHz(25000000 Hz)。如果没有定义 STM32F10X_CL(即使用普通 STM32F10x 系列,如 STM32F103),则默认外部晶振频率为 8MHz(8000000 Hz)。HSE是8MHz,SYSCLK是72MHz,所以要做 PLL 倍频(9倍频)得到 72MHz 系统时钟。对于普通系列芯片,默认定义系统时钟频率为。)对应的时钟配置函数。

2025-11-10 16:00:10 203

原创 简单按键模拟

模拟按键,比如按键KEY连的P1.7引脚,flg做标志位,模拟按下的时候KEY变低电平,按起来的时候高电平。

2025-11-08 17:27:47 197

原创 Keil调试查看变量

由于本人经常忘记打开哪里,特此记录。

2025-11-08 14:39:25 126

原创 keil 打印串口输出

要首先重映射printf函数。

2025-11-08 14:24:33 140

原创 8.2 时钟数编程

我们写的代码会被烧录到Flash模块当中,当单片机运行的时候,我们Cortex-M3内核会在Flash当中把代码一条一条读出来,然后放在内核里面去执行,但是读取Flash的速度远远赶不上内核执行代码的速度,所以为了解决这个问题,在内核和Flash中间加一个缓冲区,Flash提前把下一条要执行的指令放在缓冲区,当内核需要指令的时候,内核直接从缓冲区里面读取指令,这种叫指令预取。带颜色的代表可开关的,灰色底色的代表默认状态下关闭的,绿色底色的代表默认状态下开启的。第四步切换SYSCLK的来源。

2025-11-03 16:52:30 774

原创 8.1 时钟树

中间的粗树枝对应AHB分频器,分频后产生的分频信号就是HCLK,使用HCLK继续给它分频,这里各自有两个分频器,经过APB2分配器得到是PCLK2,PCLK2就会分配给左上面那些树叶,经过APB1分配器得到是PCLK1,,PCLK1就会分配给右上面那些树叶。左边的大树时钟频率比较高,一般是几十MHz,右边的小树时钟频率比较低,一般是几十KHz。因为内部的时钟源位于单片机的内部,虽然使用起来比较方便,但是他们精度不高,如果对精度有要求的话就要外接时钟源,如果没有要求,用内部的就行。Internal表内部的。

2025-10-26 22:51:39 400

原创 7.2 【EXTI】按钮实验

两个按钮实现控制板载LED的亮和灭,左边按钮控制点亮,右边按钮控制熄灭。

2025-10-25 20:58:16 290

原创 7.1 EXTI工作原理

EXTI捕捉输入信号的变化并产生中断。

2025-10-21 22:38:33 277

原创 手表-原理图外设部分

LED 灯珠 圆形灯头:c2895458手电筒的一端连接PB15,用网络标签。

2025-10-16 18:41:35 213

原创 6.3 串口中断编程实验

通过电脑上的串口调试助手来控制板载LED的闪亮速度比如发送0,板载LED慢闪,发送1,板载LED正常速度,发送2,板载LED快闪。

2025-10-14 00:12:03 313

原创 6.2中断优先级

优先处理重要和紧急的事情。

2025-10-12 23:48:33 286

原创 6.1中断的概念

假设串口的波特率115200(常用),我们使用的串口数据帧格式(1位起始位+8位数据位+1位停止位),也就是每传输10个位,就会传输1个字节,用115200/10=11520,得到串口每秒最多可以接收11520个字节,每个字节接收的时间大约0.1ms左右。这个0.1ms远远小于200ms,如果在闪灯的过程中可能有大量的字节发送到单片机中,而我们只有等到闪灯结束才读取数据,就会覆盖前面的,导致数据丢失。比如发送0,板载LED慢闪,发送1,板载LED正常速度,发送2,板载LED快闪。很多标志位都可以采用中断。

2025-10-12 20:17:32 327

原创 关于OLED0.96寸和1.3寸

0.96寸OLED分辨率128*64 SSD13061.3寸OLED分辨率132*64 SH1106对比了江协和铁头的OLED感觉还是江协的OLED封装比较好。

2025-10-12 14:26:32 196

原创 4.7 I2C封装测试

测试不重映射I2C,那样SCK和SDA分别就接PB6和PB7。实现检测屏幕亮,就让板载PC13的LED等亮。

2025-09-30 16:24:48 314

原创 软硬I2C

软 I2C 无需像硬 I2C 那样依赖大量标志位硬 I2C 由芯片内置的专用硬件模块执行通信逻辑,需通过 “标志位” 反馈硬件状态;软 I2C 则由软件代码模拟 I2C 时序,状态判断直接通过 “引脚电平 + 延时” 实现,无需额外标志位。硬 I2C 出现了多个标志位(如I2C_FLAG_BUSY、I2C_FLAG_SB、I2C_FLAG_ADDR等),这些标志位本质是STM32 内置 I2C 硬件模块的 “状态反馈信号”。

2025-09-27 02:23:44 471

原创 4.6 软I2C

为什么要使用软I2C。

2025-09-27 02:05:34 577

原创 4.5 I2C读数据

读数据也就是接收数据从机发送,主机(单片机)接收。通俗的说法就是读从机的数据由于I2C读数据和写数据,前面都要寻址,所以下面不再具体,具体可以参照4.4 I2C写数据。

2025-09-24 19:34:46 527

原创 4.4 I2C写数据

定义发送函数。

2025-09-23 21:44:52 266

原创 4.3 I2C模块的使用方法

SCL时钟线SDK数据线。

2025-09-22 23:02:40 378

原创 stm32最小系统板原理图

C8734。

2025-09-19 00:37:49 474

原创 4.2 I2C通信协议

对于串口一次只能传输8-9个比特位而I2C总线一次可以传输多个字节。

2025-09-10 22:45:10 217

STM32F103C8T6工程模板,同步江协

STM32F103C8T6工程模板,同步江协

2025-08-31

STM32工程模板 直接用

STM32工程模板 直接用

2025-08-30

JDBC基础-Java学习笔记

DBC英文全程Java Database Connectivity.是一个独立于特定DBMS(数据库管理系统), 通用的SQL数据库存储和操作的公共接口集合。该接口定义在java.sql和javax.sql下。JDBC是一套接口, 规定了访问数据库的规范和标准。 JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。

2022-05-28

飞翔的小鸟游戏代码+文档

使用html+css+js

2023-09-15

MySQL安装文档,下载安装环境变量

MySQL安装文档,下载安装环境变量

2022-11-14

校园卡系统任务书具体清晰

校园卡系统任务书具体清晰

2022-02-26

NBA球队数据统计c/c++实验报告

NBA球队数据统计c/c++实验报告

2022-03-17

大学生网页课程设计作业

大学网页设计作业大作业,一个主网页三个子网页

2021-12-05

数据结构版学生管理系统课程设计报告书

数据结构版学生管理系统课程设计报告书

2022-02-26

空空如也

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

TA关注的人

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