自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于STM32单片机PWM讲解(HAL库)

PWM波形(Pulse Width Modulation,脉冲宽度调制波形)是一种占空比可变的脉冲波形。这种调制方式通过改变来控制电路中的信号强度和频率。具体来说,PWM波形中的高电平持续时间和低电平持续时间可以根据需要进行调整,从而实现对电平的数字编码。

2025-04-26 16:30:22 634

原创 基于STM32定时器中断讲解(HAL库)

讲解:首先时钟源经过预分频器(一般为72MHZ/36MHZ),内部一般取72,然后进行计数,当计数器时间超过预设时间,则会产生中端。ARR是为了将CNT进行自动清空,重新计数。举例:如用内部时钟源72MHZ则(PSC+1)/F=T=1/f,表示计一个数所用的时间。ARR为重装载,根据所需要的时间Tout来配置重装载(ARR+1)表示要计的数目。比如要计500ms,则ARR可以为4999,PSC为7199。计数模式主要分为向上计数、向下计数、中心对齐计数。【注意:PSC写0则为1分频】当溢出时则会触发中断。

2025-04-26 12:25:39 1941

原创 基于STM32单片机ADC的讲解

ADC又称为模拟/数字转换器。ADC可以将引脚上连续变化的转换为内存中存储的。ADC 是一种(0~4095)【与测得电压成比例】。。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式【主要右对齐方式】存储在 16 位数据寄存器中【将32位寄存器进行对半分,分为上半部分和下半部分】。大体流程图模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。,它是由经分频产生。

2025-04-23 23:29:04 1010

原创 基于STM32串口通信

结合上图,波特率到发送/接收之间由状态寄存器(USART_SR)控制。状态寄存器(USART_SR)图这里主要关注TXE、TC、RXNE、IDLE数据寄存器图主要配置数据的传送波特比率寄存器图控制寄存器1控制寄存器2。

2025-04-20 12:54:08 968

原创 基于STM32中断讲解

NVIC、EXTI、AFIO中断配置

2025-04-19 16:57:32 967

原创 oled显示一张图片

oled、单片机、杜邦线。

2024-08-02 18:42:11 344

原创 oled显示字体

oled显示字体

2024-08-02 16:19:19 493

原创 测量温湿度通过蓝牙和串口发送数据显示在LCD1602屏上

代码仅供参考

2024-07-31 18:04:24 295

原创 DHT11温湿度通过串口显示

源码仅供参考

2024-07-30 19:12:30 1317

原创 LCD1602显示一行

笔记仅供参考

2024-07-28 20:35:06 1415

原创 WiFi模块esp工作在路由模式(实时监测)

/为了查找联网状态给的回应。//直到等于1时发送成功,TI为0时变1发送成功;void UART_Routine() interrupt 4 //串口中断。//配置串口工作模式,REN为1则接收数据。//配置定时器为8位自动重装模式。// default port = 333连接服务器。void Uart1_Init() //串口初始化。//用于当联网标志位。

2024-07-25 16:35:34 887

原创 esp8266模块通过观察LED检测AT指令进行状态

通过8266来检测AT进程,直接将安信可串口助手调试翻译过来

2024-07-22 22:27:39 807

原创 串口通信控制单片机LED(源码仅供参考)

if(strstr(cmd,"en")) //数组里面查找 en // 传出数据 ASSII码。//接受数据手动复位。//清空数组 '\0'表示没有字符,长度为size 宏定义。//直到等于1时发送成功,TI为0时变1发送成功;//配置串口工作模式,REN为1则接收数据。void Uart1_Init() //串口初始化。

2024-07-11 17:38:21 558

原创 用串口发送字符串(仅供参考)

/传入字符串 \r\n表示字符串换行的意思。//当TI为0时则!TH1 = 0xFD;//8位自动重装模式 TH1数据溢出自动装入TL1。//这样配目的是无时差。//配置定时器1 8位自动重装模式。//将字符串传入出去。//让波特率更加稳定,防止掉帧。void senddate(char date) //串口发出数据函数。//配置计算波特率模式。void sendstring(char* str) //传入字符串。

2024-07-10 21:15:53 1062

原创 上官智能感应垃圾桶

if(dis < 10 || sw1==0 || mark_vibrate == 0) //震动传感器不稳定,定义一个变量。//关盖赋予1 下次?void Time_0handler() interrupt 1 //(不断传波形信号)void vibrate_0() interrupt 0 //中断启动振动模式。if(cnt == 40) //20ms为舵机一个周期形成一个波形。

2024-05-25 20:59:59 1101

原创 函数指针调用与函数调用区别(辨析)

Int (*p)();// *p取代haha地址 类型一样。//调用函数都是此类型 getmax。switch(cmd) //取1为最大值 取2为最小值 取3为两数之和。} //可用三目运算符比较简便。puts("输入错误");puts("输入错误");

2024-05-18 15:24:50 1199

原创 指针变量之求数组对应坐标的数值

int getnumber(int (*p)[4],int hang,int lie) //数组指针对应的二维数组地址存放。//求输出坐标给出对应的值。printf("第%d行第%d的值是%d",hang+1,lie+1,date);puts("请输入行列值");

2024-05-12 16:37:57 489

原创 指针变量之数组反转

/取出地址数值 数字按照由后往前输。i++) //除以2,对调两次size为5。void putnumber(int *parr,int size) //将地址传进来,放到指针变量。//地址右移 第二位数。//对调后面数之间关系。printf("请输入第%d数据",i+1);

2024-05-05 11:35:00 357

原创 c语言指针变量关于函数的封装清晰过程

/地址右移 数组第二位数。void putnumber(int *parr,int size) //将地址传进来,放到指针变量。printf("请输入第%d数据",i+1);

2024-05-04 20:06:24 350

原创 上官c51超声波测距源代码

c51超声波测距源代码

2024-04-17 22:46:10 569 1

原创 上官c51舵机

void Time_0handler() interrupt 1 //(不断传波形信号)void Time_0init() //定时器中断初始化。while(1) //不断循环转动,在此可以调度数。if(cnt == 40) //20ms为舵机一个周期形成一个波形。//定时器0开始计时。//初始转到0°对应0.5ms。if(cnt < jd) //转过的角度。

2024-04-17 19:30:44 917 1

原创 上官C51定时器控制LED闪烁

/规定TRO=1开始计时 TFO=0。TH0 = 0xDC;//定初始值56320~65536下(10ms)TMOD = 0x01;TL0 = 0x00;if(TF0 == 1) //爆表一次为10ms。if(cnt == 100) //100次相当于1s。

2024-04-15 22:29:56 539

原创 利用函数调用求俩个班分数平均值

printf("各班级总人数为:%d\n",len);//最后一个return到main函数 averone&&avertwo。printf("请输入%d个学生分数:\n",i+1);printf("一班平均分%f\n",averone);printf("二班平均分%f\n",avertwo);//接住aver调用 average函数。//将整个数组地址和 人数传过去。//容易入坑,平均值用浮点型。

2024-03-06 00:37:16 887

原创 C语言递归求阶乘

printf("输出的值为=%d\n",sum);puts("请输入一个数");//列如输入3则是2的阶乘*3。

2024-03-03 14:36:32 323

原创 C语言函数嵌套实例

/想法:先两个两个进行比较,在决定最大的数。puts("请输入四个数");#求输入四个数中最大值#

2024-03-02 17:08:33 339

原创 C语言筛选出数组中一些数据最大值以及最大值相应坐标

/加1为了行列匹配,假设[]里面的为0,则 代表第一个数。//将假设值与比他大的值进行互换。//假设第一个数为最大值。//对上述数据进行分行列。

2024-02-28 17:40:36 501 2

空空如也

空空如也

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

TA关注的人

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