![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
单片机入门
文章平均质量分 59
花落已飘
阿里云博客专家,CSDN万粉博主,华为云享专家。擅长C语言单片机等技术智能小车带设计,单片机C语言设计。可以带徒弟学C语言,C加加,Linux,单片机,QT等嵌入式技术。也可承接项目。
展开
-
蓝桥杯单片机快速得奖方法(分享一些实用技巧)
又快到一年一度的蓝桥杯了,相信有很多小伙伴都开始在准备蓝桥杯了吧,假如你参加的是蓝桥杯单片机组那么你有福了,请认真看我这篇文章。下面我将为大家讲解蓝桥杯得奖技巧。说了那么多,大家可以去学一下蓝桥之路这本书,他可以帮你从0基础变成国赛大佬,哈哈哈多说不如大家自己去尝试,大家有蓝桥杯单片机的问题都可以找我留言。希望大家都能在今年比赛中取得好成绩,加油!原创 2023-01-31 19:42:11 · 3799 阅读 · 0 评论 -
STM32 cubeMX配置OLED
本篇文章主要介绍OLED的操作和使用。OLED的操作其实是很简单的。原创 2022-12-24 19:30:55 · 3955 阅读 · 3 评论 -
keil5MDK 及cubeMX安装教程
本篇文章主要带大家安装keil5和cubeMX这两个软件安装完成后就可以开始STM32的开发了。原创 2022-10-19 20:45:13 · 2276 阅读 · 1 评论 -
STM32cubeMX详细教学及多个小项目合集(包含RTOS)
现在大家学习完STM32总是会感觉做不出什么实在的东西,现在我就给大家推荐我写的几篇关于智能小车的项目,及智能家居的项目,希望这些文章可以帮助大家更加深入的去理解STM32相关的知识点。在学习这些东西之前大家可以先去学习STM32的基本操作,以及C语言的基本知识点。还可以去学习关于RTOS的知识。大家以后有什么想学习的可以私信或者留言。.........原创 2022-09-01 10:31:51 · 2962 阅读 · 0 评论 -
STM32框架式管理代码第一篇LED代码的管理
文章目录前言一、什么是框架式编程二、cubeMX配置三、代码展示总结前言这篇文章将正式开始带大家学习框架式编程。一、什么是框架式编程大多数人都是只在main.c里面编写代码这样会导致代码看起来非常的繁杂,不容易管理。框架式编写代码就是将各种外设写成.c和.h文件这样既方便管理又方便移植。二、cubeMX配置这里我会用到两个LED灯一个作为闪烁灯,一个作为呼吸灯。不太懂LED怎么配置的同学可以看看我之前的文章:配置LED灯闪烁三、代码展示led.c文件#include "led.h"原创 2022-04-02 20:43:20 · 1148 阅读 · 2 评论 -
STM32cubeMX配置us级延时函数
文章目录前言一、cubeMX配置二、代码解析总结前言本文带大家配置定时器写一个us级延时函数。一、cubeMX配置定时器配置二、代码解析//微秒延时void Delay_us(uint16_t us){ uint16_t differ = 0xffff-us-5; __HAL_TIM_SET_COUNTER(&htim1,differ); //设定TIM1计数器起始值 HAL_TIM_Base_Start(&htim1); //启动定时器原创 2022-02-22 12:51:11 · 3035 阅读 · 7 评论 -
STM32cubeMX配置PWM使LED灯闪烁
文章目录前言一、cuebMX配置二、代码解析总结前言本篇文章带大家学习使用cubemx配置PWM让LED闪烁。一、cuebMX配置二、代码解析总结使用cubeMX配置PWM的相关介绍就到这里了。原创 2022-02-22 07:08:39 · 2068 阅读 · 0 评论 -
stm32cubeMX配置人体感应器SR505
文章目录前言一、SR505人体感应模块二、cuebMX配置及代码讲解1.cuebMX配置2.代码讲解总结前言本篇文章带大家了解并使用人体感应模块。一、SR505人体感应模块HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口LHI778 探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,尤其是干电池供电的自动控制产品。二、cuebMX配置及代码讲解1.cuebMX配置我们只需要配置一个GPIO口作为输入即可,其他配置和点灯是一样的 点灯。2.代原创 2022-02-21 06:59:01 · 2555 阅读 · 1 评论 -
esp8266串口的简单使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?总结前言本文带领大家使用esp8266的串口模块一、pandas是什么?void setup() { // put your setup code here, to run once: Serial.begin(115200);//设置波特率 Serial.printf("Hello\n");//开机发送Hello 此函数用法和C语言中的printf一样}void loop()原创 2022-02-19 08:51:20 · 1435 阅读 · 1 评论 -
蓝桥杯小技巧之巧用bit类型定义变量
文章目录前言一、上赛题二、代码分析总结前言本篇文章我带大家了解bit定义变量的好处,下面讲结合一篇省赛题给大家详细讲解。一、上赛题首先我们观察题目使用到了四个按键而且每一个按键都控制两个功能,大家都能想到每一个按键分别定义一个变量,没错这大家都可以想到,但是我想给大家使用一次bit来定义变量解决这些问题。代码功能我不会写完整只教大家方法。二、代码分析#include <STC15F2K60S2.H>//变量类型宏定义(定义变量多时可以减少代码的书写量)#define uns原创 2022-02-19 08:09:25 · 1617 阅读 · 0 评论 -
实战项目(2)STM32cubeMX配置蓝牙模块
文章目录前言一、蓝牙模块介绍二、cubeMX配置及代码解析1.cubeMX配置2.代码解析总结前言本篇文章带大家了解并学会使用蓝牙模块一、蓝牙模块介绍JDY31蓝牙模块JDY-31 蓝牙基于蓝牙 3.0 SPP 设计,这样可以支持 Windows、Linux、android 数据透传,工作频段 2.4GHZ,调制方式 GFSK,最大发射功率 8db,最大发射距离 30 米,支持用户通过AT 命令修改设备名、波特率等指令,方便快捷使用灵活。蓝牙接线方式VCC-3.3VGND-GNDTX原创 2022-02-18 09:48:34 · 7777 阅读 · 18 评论 -
蓝桥杯小技巧之电压值显示
文章目录前言一、赛题二、转换方法总结前言本篇文章主要带大家学习一下如何在数码管上面显示出电压的小数形式。一、赛题这里要求我们显示的电压是以小数形式出现,很多小伙伴就可能不懂了。这里给大家介绍一个小方法。二、转换方法我们知道蓝桥杯单片机的AD分辨率是8位的,所以他的量程就是0到255。但是我们的电压又是0-5V这就要有一个转化的过程了。数码管上显示的电压值为小数占了数码管的3个位置,这个时候我们就先把5V电压先写成5.00V。现在我用255x2发现结果是510在5后面加上一个小数点我们惊奇原创 2022-02-18 07:20:23 · 2351 阅读 · 4 评论 -
蓝桥杯之驱动代码解析
文章目录前言一、DS1302二、IIC1.IIC通信协议2.读写AT24C023.读取ADC总结前言本文主要带大家了解驱动代码,以及比赛官方在驱动代码下的套。一、DS1302官方下套点://单总线延时函数void Delay_OneWire(unsigned int t) //STC89C52RC{ t*=11; while(t--);}此函数官方会把t*=11删除,大家在比赛时记得把这个写上,忘记写上这个会导致数据读取错误。自己编写代码部分:float read_temp()原创 2022-02-17 12:00:45 · 1263 阅读 · 3 评论 -
蓝桥杯使用定时器代替延时控制按键
文章目录前言一、延时函数的优点和缺点二、代码详解总结前言本篇文章主要带领大家了解为什么要使用定时器代替延时函数。一、延时函数的优点和缺点优点:编写简单,容易理解。缺点:阻塞程序,让一直一直处于等待状态,工作效率低极大的浪费了CPU的资源。二、代码详解#include<STC15F2K60S2.H>//按键引脚声明sbit S7=P3^0;sbit S6=P3^1;sbit S5=P3^2;sbit S4=P3^3;//变量类型宏定义(定义变量多时可以减少代码的书写量原创 2022-02-16 19:45:18 · 1483 阅读 · 8 评论 -
蓝桥杯实用小技巧
文章目录前言一、定时器代码生成二、数码管断码获取总结前言本文主要给大家介绍蓝桥杯的两个小技巧一、定时器代码生成把TF0=0改成EA=0和ET0=0即可。二、数码管断码获取这里的数码管断码是共阳的断码,而我们使用的单片机采用的是共阴的断码,所以想使用这个断码的话需要对其取反再使用。总结使用上面的技巧可以在比赛时帮助我们节省时间。...原创 2022-02-16 17:22:07 · 10325 阅读 · 8 评论 -
蓝桥杯之多界面切换处理(枚举加状态机法)
文章目录前言一、何为多界面切换二、代码展示总结前言本文我们主要介绍在蓝桥杯中如何处理多界面切换问题。一、何为多界面切换多界面切换就是题目中要求在特点的情况下显示特定的界面,这个时候就需要我们对界面进行切换操作了。二、代码展示#include <STC15F2K60S2.H>static void DIP_ser(void)//处理多界面static void key_scan(void);//按键进行界面切换typedef enum{ ID_NULL=0, ID_1,原创 2022-02-15 16:01:15 · 10217 阅读 · 5 评论 -
stm32项目实战(1)光敏电阻的介绍和使用
文章目录前言一、光敏电阻介绍二、cubeMX配置三、代码说明总结前言本篇文章我们讲带大家了解光敏电阻的使用一、光敏电阻介绍下面是4线光敏电阻实物图产品接线说明:1、VCC 接电源正极 3.3-5V2、GND 接电源负极3、DO TTL 开关信号输出 (配置为输出模式)4、AO 模拟信号输出(ADC采样通道)光敏电阻主要用于检测周围的光照强度,光照强度发生变化那么ADC采样的值也会发送变化。二、cubeMX配置简单的配置我们就不多说了主要是ADC采样的配置这里我采用的是ADC1通道原创 2022-02-12 11:15:18 · 9590 阅读 · 1 评论 -
stm32项目实战ST7735环境质量检测仪
文章目录前言一、使用到的模块二、效果总结前言我们主要带大家练习一个小项目让大家熟悉stm32的操作一、使用到的模块1.stm32正点原子精英版2.DH11湿温度传感器3.MQ135空气质量传感器4.ST7735LCD屏幕5.光敏电阻6.蓝牙模块二、效果总结此项目可以帮助我们检测周围环境,对于学完单片机的同学是一个很好的练习项目。...原创 2022-02-11 11:30:18 · 1151 阅读 · 0 评论 -
C语言项目实战学生管理系统(4)
文章目录前言一、输出指令框二、查找指定学生信息总结前言前面我们忘记给大家将怎么把系统的指令框输出到控制台上了,今天我们将补上这个点然后再带大家学习如何查找指定学生的信息。一、输出指令框这一步就是一些printf打印出命令和一些空格去控制打印的地方,大家可以直接复制下面的代码。//显示指令void showorder(){ printf("******************学生信息管理系统****************\n"); printf("******************本系统原创 2022-02-10 09:13:06 · 336 阅读 · 0 评论 -
C语言项目实战学生管理系统(3)
文章目录前言一、查看学生信息二、链表的释放1.2.读入数据总结前言本篇文章我们带大家学习如何查看学生信息及链表的释放。一、查看学生信息二、链表的释放1.2.读入数据总结原创 2022-02-09 11:05:40 · 546 阅读 · 0 评论 -
esp8266之点灯
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?//初始化void setup() { pinMode(LED_BUILTIN, OUTPUT); // 将LED引脚设置为输出模式}//循环void loop() { digitalWrite(LED_BUILTIN, LOW); // 引脚输出低电平 // but actually the LED is on; this is because // it i原创 2022-02-08 11:07:28 · 4907 阅读 · 0 评论 -
stm32cubeMX配置ADC采样
文章目录前言一、cubeMX配置二、ADC库函数使用总结前言本文介绍如何使用cubeMX配置ADC采样一、cubeMX配置这里需要注意把时钟修改一下,配置ADC后需要重新修改时钟树二、ADC库函数使用u16 vol=0;//中断方式启动ADC转换HAL_ADC_Start_IT(&hadc1); //ADC转换完成中断回调函数,每次ADC转换完成触发中断调用本函数void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef*原创 2022-02-07 09:29:06 · 10093 阅读 · 0 评论 -
C语言项目实战学生管理系统(2)
文章目录前言一、尾添加总结前言本篇文章我们接着上一篇文章讲解。C语言项目实战学生管理系统(1)一、尾添加上篇文章我们讲到尾添加一个学生信息,这篇文章我们详细讲述如何尾添加。//添加一个学生信息void AddstuMSG(char arrStunum[10], char arrStuname[10], int iStuSorce);`//添加一个学生信息void AddstuMSG(char arrStunum[10], char arrStuname[10], int iStuSor原创 2022-02-06 19:57:52 · 694 阅读 · 1 评论 -
C语言项目实战学生管理系统(1)
文章目录前言一、创建学生节点二、使用步骤1.引入库2.读入数据总结前言本文我们正式讲解学生管理系统一、创建学生节点#include<stdio.h>//创建一个节点typedef struct _STU{ char arrStunum[10];//学生学号 char arrStuname[10];//学生姓名 int iStuSorce;//学生分数 struct _STU*pNext;//指向下一个节点指针} STUNODE;//声明链表的头和尾STUNODE原创 2022-02-06 11:01:51 · 936 阅读 · 0 评论 -
C语言实战项目:学生管理系统
文章目录前言一、学生管理系统具体功能二、C语言知识准备前言本篇文章主要带领大家熟练的去使用C语言做一个实战的项目,这篇文章主要介绍学生管理系统的功能以及常用的知识。一、学生管理系统具体功能学生管理系统就是可以帮助我们平时管理学生成绩和学生信息的一个小系统,具体功能我们会逐一讲解。二、C语言知识准备学习学生管理系统主要要运用到数据结构的知识,需要大家对指针和结构体有比较强的运用能力。下一篇文章我们正式带领大家学习学生管理系统。...原创 2022-02-05 11:11:30 · 2065 阅读 · 0 评论 -
stm32 CubeMX配置按键开关灯
文章目录前言一、CubeMX配置二、代码解析总结前言一、CubeMX配置cubeMX配置大家可以参考下面文章,这里我只讲需要添加的地方。传送门按键GPIO口设置为输入模式,由上面原理图可以知道按键在没有按下的时候电平状态不确定,所以我们应该给按键加一个上拉电阻,在按键没有按下时GPIO电平状态就为高电平,按键按下时GPIO电平状态就为低电平。二、代码解析void KEY_Scan(void){ if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_3))//读取按键原创 2022-02-04 11:30:49 · 2970 阅读 · 0 评论 -
stm32使用cubeMX配置TIM定时器让LED灯闪烁
文章目录前言一、定时器介绍二、使用步骤1.CubeMX配置2.读入数据总结前言本文将介绍stm32定时器的使用。一、定时器介绍定时器是单片机内部的特殊功能模块。在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬件定时。软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延时固定的时间,也就是以前的程序中经常使用的原创 2022-02-03 14:43:09 · 6335 阅读 · 0 评论 -
stm32使用HAL库函数使LED灯闪烁
文章目录前言一、cubeMX配置及代码说明前言本篇文章将带领大家使用HAL库函数让一个LED灯闪烁。一、cubeMX配置及代码说明这里和前面点亮LED灯的配置是一样的,:传送带while(1){ HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);//对GPIO口的电平进行反转(低-高,高—低) HAL_Delay(500);}...原创 2022-02-02 15:39:47 · 3884 阅读 · 0 评论 -
stm32使用CubeMX配置LED灯闪烁
文章目录前言一、cubeMX配置二、使用HAL库函数点亮LED灯总结前言本篇文章将带大家学习如何使一个LED灯闪烁。一、cubeMX配置CubeMX配置和点亮一个LED的配置方法是一样的,点亮一个LED灯。二、使用HAL库函数点亮LED灯HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);HAL_Delay(500);//HAL库自带的ms级延时函数HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET原创 2022-02-02 14:02:01 · 3570 阅读 · 0 评论 -
stm32使用CubeMx配置蜂鸣器
文章目录前言一、蜂鸣器介绍二、CubeMX配置蜂鸣器IO口三.库函数的使用前言本文主要带大家使用CubeMX配置蜂鸣器一、蜂鸣器介绍蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。这里的有源不是指电源的“源”,而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声;无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz原创 2022-02-02 09:22:27 · 7143 阅读 · 2 评论 -
stm32CubeMX点亮一个LED灯
文章目录一、CubeMX配置LED IO口二、使用HAL库函数点亮LED本篇文章将带大家使用CubeMX配置stm32点亮一个LED灯。一、CubeMX配置LED IO口1.单片机型号选择:这里我使用的是正点原子的精英版,大家可以根据自己的单片机选择相应的型号。2.IO口及其他配置:这里根据自己单片机LED IO口的位置将IO口配置为输出模式,当IO口输出低电平时LED灯被点亮。配置时钟树生成工程代码二、使用HAL库函数点亮LEDHAL_GPIO_WritePin(GPIO原创 2022-02-01 17:48:30 · 3447 阅读 · 1 评论 -
protues驱动一位数码管循环显示89C51
文章目录一、原理图二、代码一、原理图二、代码#include<reg52.h>unsigned char i=0;unsigned char tab[]={~0x7F,~0x6F,~0x39,~0x6D,~0x06};//延时函数void delayms(unsigned int x){ unsigned char i; while(x--) { for(i=0;i<113;i++); }}void main(){ while(1原创 2021-12-04 09:00:58 · 855 阅读 · 0 评论 -
protues仿真51单片机驱动继电器
文章目录一、原理图二、代码一、原理图二、代码原创 2021-12-01 18:59:13 · 3929 阅读 · 2 评论 -
protues 51单片机仿真电路图及代码
文章目录一、原理图二、代码展示一、原理图二、代码展示原创 2021-11-28 09:00:23 · 2799 阅读 · 2 评论 -
按键控制数码管闪烁
文章目录一、数码管闪烁一、数码管闪烁#include<STC15F2K60S2.H>unsigned char mode=0;//模式变量unsigned char stat=0;//闪烁位变量unsigned int count_smg=0;//数码管闪烁计数变量unsigned char f_open=0;//闪烁标志sbit S7=P3^0;unsigned char code table[]={0xc0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xF8原创 2021-11-18 22:28:56 · 3790 阅读 · 2 评论 -
单片机入门3.驱动蜂鸣器
文章目录一、蜂鸣器是什么?二、电路原理图及使用代码1.电路原理图2.使用代码一、蜂鸣器是什么?蜂鸣器有两种:一种是有源蜂鸣器,内含多谐振荡器,能够采用直流电源直接驱动,本开发板使用的就是有源蜂鸣器;另外一种就是无源蜂鸣器,需通过脉冲来驱动,不能采用直流来驱动。怎样区分有源跟无源蜂鸣器,一般蜂鸣器底部有黑胶封住的就是有源蜂鸣器,否则是无源蜂鸣器。在硬件电路中,蜂鸣器一般要接上一个三极管,三极管的作用有两个,一是充当开关作用,二是增大驱动蜂鸣器的电流。二、电路原理图及使用代码1.电路原理图当FM=0原创 2021-10-06 17:40:44 · 2692 阅读 · 0 评论 -
C51单片机1.点亮一个LED灯
文章目录一、实验原理二、实验电路图三、代码实现一、实验原理LED发光二极管具有单项导通性,通过5mA左右的电流就能正常点亮发光二极管,电流越大,LED的亮度就越强,但是如果通过的电流过大,就会LED,电流一般有控制在3~20mA,电路图中的1K的上拉电阻的作用就是限制通过LED的电流,可称为限流电阻。二、实验电路图电路中的LED采用共阳级的接法,也就是LED的阳极都连到了VCC上。当把DB0~DB7中的一个设置为低电平就可以使二级管导通,点亮LED灯。三、代码实现 #include"re原创 2021-10-01 20:23:26 · 2565 阅读 · 3 评论