
单片机
文章平均质量分 70
本专栏是关于51和32单片机的学习
泡菜鱼111
坚定自信,加油
展开
-
微机原理——并行接口8255学习1
1 数据线:单字节双字节 四字节 八字节的宽度,传输很快。2 除数据线外,可设置握手联络信号,易于实现异步互锁协议,提高传输可靠性。3 数据格式,数据宽度和工作时序由外设来决定,因此很自由。4 一般不做差错检验和传输速率控制。5 用于近距离传输。6 并行接口使用很广泛。原创 2023-12-03 14:50:12 · 3255 阅读 · 0 评论 -
微机原理——定时器8253(8254)学习2应用与设计
流水线的工作过程:向通道0写入计数初值时,即开始对流水线上的罐头进行计数,计满24个罐头,计数器输出波形OUT0的上升沿,触发通道1开始定时,定时器输出波形OUT1的下降沿使工作台暂停,经5s后OUT1的上升沿启动工作台,流水线又开始工作,通道0开始计数。把被测量的脉冲作为门信号连到某个计数器通道(如通道1)的GATE端,GATE为低电平时,装计数初值,GATE变为高电平时开始计数,直到被测脉冲信号变为低电平停止计数,并锁存,然后读出通道1的当前值n,最后脉冲宽度就是(65536-n)us。原创 2023-12-02 15:48:21 · 2070 阅读 · 2 评论 -
微机原理——定时器8253(8254)学习1
(对于重复计数过程,因为能自动重装载,计数过程会反复进行,不能自动停止,要停止计数必须加控制信号,方法是置GATE=0),8253有三个命令字:方式命令,锁存命令,读回命令。因为只有方式2和方式3有自动重装载功能,所以只有方式2和方式3能输出连续波形,其他方式只能输出单次波形。装入:16位减法计数器,8253外部数据线只有8位,所以先装低八位,后装高八位,写入同一个端口。格式: (方式命令用来初始化8253,所以必须使用,剩下两个根据需要使用)例:计数器1,只读/写低字节,方式1,二进制。原创 2023-12-01 21:57:09 · 2587 阅读 · 3 评论 -
蓝桥杯—stm32g431rbt6串口中断和定时器输出pwm学习
配置异步模式,使能中断,选择波特率。串口接收中断开启printf ("接收到的数据是:%s \r\n",data);//重新使能接收中断,不然只进一次串口重定向:#include "stdio.h"原创 2023-04-07 10:18:39 · 879 阅读 · 1 评论 -
I2C总线改变MCP4017阻值和ADC多通道采集电压
MCP4018适合做分压,MCP4017可以做可变电阻,滑到左边是R(AB),滑到中间是R(AB)/2,滑到右边是0Ω。100kΩ的阻值,可以分成127个档。掉电然后重新上电会恢复到中间电阻50kΩ。MCP4017器件地址:R/W=0:写 0101 1110 0x5eR/W=1:读 0101 1111 0x5fMCP4017电阻网络:R(AB)=R(S) X N。原创 2023-04-05 09:40:12 · 1296 阅读 · 0 评论 -
I2C协议
时钟信号SCL为高时,SDA必须保持稳定,SCL为低时,SDA才可以变化。写数据时:SCL为低时,改变SDA。读数据时:SCL为高时,读取IO电平。原创 2023-04-05 00:29:25 · 474 阅读 · 0 评论 -
基于stm32G431RBT6蓝桥杯嵌入式—新建工程和点灯
PD2是高电平,D、Q电平相同,PD2是低电平,D的数据不会影响到Q。所以需要先给PC口赋值,在打开门锁,再关闭门锁,让Q端数据保持稳定。P-MOS和N-MOS组成推挽结构,一个导通另一个截止,可以输出高电平或低电平,具有驱动能力20mA左右。这个锁存器相当于一个门锁,PD2相当于钥匙,采用共阳接法,即LED负极接低电平点亮。只用N-MOS,只能输出低电平,输出高电平的话需要外接上拉电阻。输入0,输出GND;输入1,输出3.3V。开漏输出模式open-drain。时钟树配置:一般使用内部时钟。原创 2023-01-28 16:05:30 · 1071 阅读 · 0 评论 -
STM32智能门锁学习三[完],AS608指纹解锁
先来看一下指纹模块: 到手的模块应该是只有6根线,不过我们只需要接前4根线即可,不需要接后面的,因为指纹模块是通过串口发送指令,让模块识别有无手指按下。我们要先用上位机软件对其进行调试,用串口和指纹模块连起来接在电脑上,打开我们的软件,进行录入指纹,搜索指纹等操作,用来判断模块是否是好的,不过这并不代表已经录入指纹了,到时候还是得通过程序录入指纹。 测试没问题之后,就进行我们的cube配置,这里用的是串口3,并使能中断。 然后是代码部...原创 2022-07-08 15:07:52 · 5870 阅读 · 4 评论 -
STM32智能门锁学习二,RFID刷卡解锁
目录效果如图:cube配置:代码部分:个人认为,这个比之前的按键解锁和蓝牙好玩哈哈哈哈==首先,这个模块叫做RFID RC522射频模块,上面一共有8个引脚,其中IRQ引脚保持悬空即可,我们只需要接另外7个引脚。SDA引脚为数据接口,SCK引脚为时钟接口,MOSI引脚为SPI接口主出从入,MISO引脚为SPI接口主入从出,GND接地,RST为复位信号,3.3V接单片机3.3V。...原创 2022-07-02 17:05:08 · 6226 阅读 · 4 评论 -
STM32基于HAL库的HC-SR04超声波测距学习
本章要实现的功能是实现超声波测距并将距离显示在oled屏上,所用的板子仍是stm32f103c8t6。目录效果: cube配置:代码部分:关于溢出问题的补充:首先来看一下HC-SR04超声波测距模块:1.选择定时器2通道3作为echo管脚,选择PA1作为trig管脚,并使能定时器中断。2.使能I2C2,为了实现将距离显示在oled屏上,或者使用串口查看测量结果也可。3.生成工程。全局变量定义:第一个是标志位,用来判断是不是第一次被捕获,第一次捕获是上升沿,第二次是下降沿,两次相减才是我们需要的中间高电平的时原创 2022-07-02 14:20:59 · 3526 阅读 · 3 评论 -
STM32智能门锁学习一,按键解锁,蓝牙解锁、oled显示,步进电机
基于stm32f103c8t6的oled显示屏、步进电机、薄膜按键、蓝牙模块的学习。原创 2022-06-25 21:47:43 · 6550 阅读 · 5 评论 -
51“motorrr”寻迹小车学习1电机和寻迹模块
目录一 硬件二 软件前几天完成了寻迹小车的电机和寻迹模块的学习,这里板子用的是51最小系统板。一 硬件电机驱动模块L298N 和 寻迹模块其实也没什么,pwm控制速度再加上寻迹模块,主要是遇见了一些玄学问题,这里来总结一下:1.用下载器烧不进程序,总显示什么芯片加载超时==,解决方法:用51板子烧进去芯片再按上去就好了,(注意芯片的方向不要按反)就是比较麻烦。。2.按进去芯片之后,上边那个数码管的数字一闪一闪的,车有想动的趋势但是不动,差点想把车拆了换个芯片重新装了,结果发现原创 2022-05-10 15:38:37 · 1873 阅读 · 0 评论 -
51矩阵按键学习(包含库)
矩阵按键:按键数量较多时,为了减少IO口的使用,将按键排列成矩阵形式。原创 2022-04-14 21:49:13 · 536 阅读 · 0 评论 -
51单片机LCD1602学习(包含库)
关于实际引脚:RS ~ P2^6 RW ~ P2^5 E ~ P2^7 数据/指令 ~ P0关于LCD1602:可以显示两行,每行16个字符void writedat(unsigned char dat)//写数据{ RS=1; RW=0; E=0; P0=dat; delay(5); E=1;//拉高,数据传完之后拉低 E=0;}void writecom(un...原创 2022-04-12 16:14:21 · 3991 阅读 · 0 评论 -
窗口看门狗WWDG学习笔记
一原创 2022-04-03 08:49:04 · 488 阅读 · 0 评论 -
独立看门狗IWDG学习笔记
目录一 独立看门狗简介1.键值寄存器IWDG_KR2.预分频寄存器IWDG_PR3.重装载寄存器IWDG_RLR二 代码wdg.cmain.cstm32有两个看门狗:独立看门狗IWDG和窗口看门狗WWDG。使能了看门狗,在程序里面就必须间隔一定时间喂狗,否则将导致程序复位。一 独立看门狗简介先介绍几个寄存器1.键值寄存器IWDG_KR向键值寄存器写入0xCCCC,开始启用独立看门狗,此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾 0x.原创 2022-04-02 23:56:02 · 589 阅读 · 0 评论 -
关于stm32GPIO和中断的笔记补充
都写在笔记本上了,就不手敲了。。不过都是基于HAL库的函数。GPIO:外部中断:原创 2022-03-27 15:56:04 · 735 阅读 · 0 评论 -
外部中断实验
目录一 中断简介常用格式:二 代码exti.cexti.hmain.c一 中断简介IO 口外部中断的一般步骤: 1)初始化 IO 口为输入。 2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。 3)初始化线上中断,设置触发条件等。 4)配置中断分组(NVIC),并使能中断。 5)编写中断服务函数。stm32F103的19个外部中断:线 0~15:对应外部 IO 口的输入中断。 (从这里可以看出,供IO口使用的中断线只有16个原创 2022-03-27 15:41:15 · 3052 阅读 · 0 评论 -
避障小车学习2
目录一 超声波二 舵机三 电机控制四 cube配置一 超声波用输入捕获的方法,原理:先设置输入捕获为上升沿检测,记录发生上升沿时TIMx_CNT的值。然后配置捕获信号为下降沿捕获,当下降沿到来的时候发生捕获,并记录此时的TIMx_CNT的值。这样,前后两次TIMx_CNT的值之差就是高电平的脉宽。同时根据TIM的计数频率,我们就能知道高电平脉宽的准确时间。写在了自己写的回调里,因为输入捕获有一个自己的回调,它不会进定时器中断回调。打开定时器:HAL_TIM...原创 2022-03-22 21:03:12 · 455 阅读 · 1 评论 -
2022.3.18串口实验
串口设置的一般步骤:1) 串口时钟使能,GPIO时钟使能 串口是挂在APB2上的外设,所以使能函数为RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1); 2) 串口复位 一般在系统刚开始配置外设的时候,都会先执行复位该外设的操作。void USART_DeInit(USART_TypeDef* USARTx); //串口复位比如要复位串口一:USART_DeInit(USART1); //复位串口 13) GPIO端口...原创 2022-03-20 21:55:17 · 930 阅读 · 0 评论 -
2022.03.06按键输入实验笔记
目录一.硬件设计二.代码部分1.key.c2.key.h3.main.c效果:第一个按键控制两个灯,第二个按键和第三个按键分别控制一个灯,按下按键实现led灯状态翻转。效果图:一.硬件设计按键与 STM32 连接原理图:用到的硬件资源:指示灯 DS0、DS1;3 个按键:KEY0、KEY1 和 KEY_UP。这里需要注意的是:KEY0 和 KEY1 是低电平有效的,而 WK_UP 是高电平有效的,除了 KEY1 有上拉电阻(与 J...原创 2022-03-06 11:05:21 · 327 阅读 · 0 评论 -
2022.0306避障小车学习1
要求:使用stm32f103单片机,应用RTOS实时系统,使用超声波模块,oled屏,l298n直流步进电机 驱动模块和小车底盘。 思路:用超声波测出距障碍物的距离,将距离显示在oled屏上,再根据判断距离大小调用前进或者后退那些函数。1.oled屏:显示距离,频率等数据怎么显示。。。2.超声波测距float Measure(){ struct timeval t1; //超声波测距结构体,系统自带 struct timeval t...原创 2022-03-06 10:20:08 · 5575 阅读 · 0 评论 -
2022.03.04 跑马灯实验笔记
目录一.led.c二.led.h三.main.c实验工程目录:USER分组存放用户代码,main.c中编写main函数,it.c中编写中断函数,SYSTEM分组中存放常用的公用代码,包括延时函数等,一般不需要改动。一.led.c该代码里面就包含了一个函数 void LED_Init(void),该函数的功能就是用来实现配置 PA8 和 PD2 为推挽输出。#include "led.h"#include "stm32f10x.h"//LED IO 初始化..原创 2022-03-04 19:15:45 · 550 阅读 · 1 评论