自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 系统定时器试验及外部中断测试结构

外部中断程序里不能这样写,if本身就是中断,如果这样写,只能执行第一个if

2022-01-13 19:45:07 130

原创 STM32中断的总结

2022-01-11 21:40:41 294

原创 关于GPIO端口高低电平捕捉及循迹避障传感器的使用方法

本文讲述的是GPIO_ReadInputData(GPIO_TypeDef* GPIOx)函数的使用方法:本文使用的是下图所示的红外循迹模块,探测到物体时经过自带模块会从D0端输出一个低电平,此时传感器的灯会亮起,这个低电平需要传送到单片机的GPIO口。本文使用的是野火F429开发板,设置PD6接口为输入端,用于捕捉高低电平信号。这里值得注意的是,因为探测信号输入到单片机为低电平,所以我们要将PD6接口初始化为高电平,所以是上拉输入!野火F429的LED灯为原理图为用if语句判断,用 GPI

2022-01-06 19:28:48 3378

原创 GPIO八种模式

(1)GPIO_Mode_AIN 模拟输入(2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入(4)GPIO_Mode_IPU 上拉输入(5)GPIO_Mode_Out_OD 开漏输出(6)GPIO_Mode_Out_PP 推挽输出(7)GPIO_Mode_AF_OD 复用开漏输出(8)GPIO_Mode_AF_PP 复用推挽输出在STM32中选用IO模式(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,RX1(2)

2021-11-25 22:17:27 678

原创 定时器输出PWM控制舵机

2021-11-23 16:29:07 758

原创 定时器输出PWM原理

模式//结构体初始化:init1、2、3、4表示不同通道,通道1234。//设置比较值,一般情况下可以在结构体内设置,特殊情况下也可以调用这个函数设置来改变占空比。//使能输入比较预装载:设置APER是0还是1,让ARR在这个周期生效还是下个周期。//使能自动重装在的预装载寄存器允许位:使能就可以了//配置修改极性:很少用,因为在结构体已经配置完成。...

2021-11-23 15:09:28 1186

原创 STM32重定向

一、重定向定向什么要用到printf函数首先要在usart.h中添加头文件#include<stdio.h>然后我们需要重定向fputcWEAK修饰符表示我们未手动定义这些时候,这些已经被默认定义,编译不会出错,但是我们可以重新定义他,系统就会以我们定义的去运行二、正式开始编程输出fputc函数1.1定义1.2声明不用在main.c和usart.h中再次声明这个函数,因为之前的printf已经默认声明过但是不要忘记在usart.h中包含stdio.h1.3调用在mai

2021-11-17 20:54:51 1211

原创 STM32中printf重定向(串口输出)

一、理解:什么是重定向?重定向是指将fputc里面的输出指向目标设备。因printf函数调用了fputc,而fputc输出有默认指向的目标,且不同库中的fputc输出指向不同,所以需要重写fputc相同的东西换不同的出口,就像电脑,同样的内容,可以通过显示器显示出来,也可以通过投影仪显示出来具体怎么实现没关心过, 只知道怎么用 重定向就和名字一样, 就是把你要printf的东西选择一个通道print出去,可能是UART0,UART1,或者DEBUG里那个虚拟的UART在STM32测试串口的时候经常需

2021-11-17 20:17:23 5472 1

原创 串口发送字符串

一、发送字符1.1定义1.2声明1.3调用效果:按一下复位键,发送一次OK二、发送字符串2.1定义2.2声明2.3调用

2021-11-17 12:58:24 6053

原创 串口接收字符1-4(④串口的发送)

传口的发送本次试验是用单片机发送字符到上位机电脑端,所以我们用到send函数在usart.h中找到函数第一个参数:USART1第二个参数:‘o’ //发送单个字符oUSART_SendData(USART1, ‘o’);如果我们想发送多个字符怎么办呢?那我们到.h中找到判断标识符函数**//判断串口目前的状态**USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);将其复制到main函数里.

2021-11-16 21:51:49 348

原创 串口接收字符1-4(③配置串口结构体)

串口的结构体在FWLIB>usart.c>usart.h中我们不用带时钟的那个结构体,我们用USART_InitTypeDef加.访问端口,一共是六个①波特率:115200; 直接设置!②硬件流(宏定义):USART_HardwareFlowControl_None; 这里我们不用硬件流③模式(宏定义):USART_Mode.

2021-11-16 20:42:38 498

原创 串口接收字符1-4(②配置GPIO结构体)

GPIO结构体在gpio.h文件中

2021-11-16 19:53:40 635

原创 串口接收字符1-4(①配置时钟)

一、新建工程①在固件库USER中创建新文件夹usart,再在其中新建usart.c和usart.h的文本②把新建两个文件新添加到工程中,.c:双击工程文件USER,找到.c 然后打开.c后在其中添加头文件,.h文件在编译后会自动添加到.c下二、软件编程在usart.c中写串口函数void usart_init(void){}1.根据PPT,先配置时钟1.1开启usart时钟①找到对应的APB2时钟函数在FWLIB中找到rcc.c>rcc.h ,找到其中对应的APB2,复

2021-11-16 19:20:19 479 1

原创 串口库函数讲解

提示:本次用的是最小系统板,所以没有UART4\UART5在总线中发现USART1用的是APB2和其他的串口不一样,所以我们用到的波特率也不一样注释异步第一个:波特率,其中USARTDIV部分我们直接设置,系统会自动算出这个值第二个:字长,即有效数据位,可以有8位,也可以有9位第三个:停止位,正常我们经常使用1个停止位第四个:奇偶校验位,Even是偶 校验位 Odd是奇校验位第五个:模式,模式设置为收或者发(可以同时设置为收发)第六个:硬件流控制,我们通常不用,设置为..

2021-11-15 10:53:19 398

原创 智能垃圾桶学习-串口通信(原理)

TTL电平:0V~5V232电平:-3V~15V

2021-11-15 10:09:03 305

原创 通信基本原理

一、数据传送方式二、数据通信方式三、数据同步方式四、数据通信速率一、数据传送方式二、数据通信方式三、数据同步方式四、数据通信速率

2021-11-15 09:39:09 1788

原创 外部中断感应灯应用

1.固件库的USER中创建exti文件夹,用来存放.c文件2.在extiwe文件夹中新建exti.c和exti.h3.在keil中双击USER工程,把exti.c添加进来在exti.c中把exti.h头文件包含进来

2021-11-01 21:42:19 174

原创 STM32外部中断

如何配置中断步骤1.初始化GPIO结构体(前面已学过)2.初始化EXTI3.配置优先级NVIC4.编写中断函数具体步骤一、初始化用来中断的GPIO口二、初始化EXTI边沿监测电路----->上升沿/下降沿触发中断在FWLIB-.exti.c-exti.h结构体含义①端口已经定,直接复制就可以②模式选择,我们通常使用产生中断③触发方式④是否使能或禁用三、配置VNIC(中断优先级)配置中断的优先级,中断嵌套NVIC结构体①FWLIB-misc.c–stm3.

2021-10-29 12:22:56 194

原创 Markdown编辑器

这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdo

2021-10-29 09:59:34 87

原创 震动传感器控制继电器(项目实现+总结)

各个模块都已基本上完成,只需稍微修改代码(GPIO端口)实现功能:一开始灯关闭,触摸震动传感器后灯亮一秒,一秒后灯熄灭。

2021-10-05 10:44:28 231

原创 震动传感器应用

1.震动传感器模块外部照片2.新建shake工程①在USER中新建shake文件夹,并且在其中新建shake.c、shake.h文件②在Keil5中添加shake.c(直接添加),shake.h(现在shake.c中#include “shake.h”然后编译后自动添加了shake.h)③在shake.c和shake.h中#include “stm32f10x.h”④在shake.c中定义一个函数——>在shake.h中申明——>在main.c中调用**(要添加#include “s

2021-10-05 10:36:42 294

原创 继电器控制的应用

1.在USER文件夹下新建relay工程①在User新建继电器文件夹(文件名为relay),并且在该文件夹下新建relay.c和relay.h文件②双击Keik5中的USER,把relay.c添加进去,然后在relay.c文件中用#include "relay.h"把relay.h文件包含进来点击编译后即可添加relay.h③在relay.c和relay.h中都要把#include "stm32f10x.h"头文件包含进来2.relay的定义、声明、调用①在relay.c中定义一个relay延时

2021-10-04 21:48:17 441

原创 继电器工作原理

1.继电器工作原理继电器相当于开关,一个可以用代码控制的开关。2.继电器+单片机工作原理3.继电器+单片机接线4.高速单片机吧灯点亮

2021-10-04 15:54:59 1385

原创 固件库点灯-2根据原理图点灯

我们要根据原理图,把Pin13引脚拉。因此我们在USER的main.c函数里写入函数while(1)。我们在gpio.h中找到这个GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)函数参数调整为如图

2021-10-03 18:09:47 87

原创 STM32的四种输出模式

1、普通推挽输出(GPIO_Mode_Out_PP):使用场合:一般用在0V和3.3V的场合。线路经过两个P_MOS 和N_MOS 管,负责上拉和下拉电流。使用方法:直接使用输出电平:推挽输出的低电平是0V,高电平是3.3V。2、普通开漏输出(GPIO_Mode_Out_OD):使用场合:一般用在电平不匹配的场合,如需要输出5V的高电平。使用方法:就需要再外部接一个上拉电阻,电源为5V,把GPIO设置为开漏模式, 当输出高组态时,由上拉电阻和电源向外输出5V的电压。输出电平:在开漏输出模式时,

2021-10-03 17:46:26 2076

原创 固件库点灯-1时钟及结构体配置

用固件库点灯的原理和用寄存器点灯原理一样,都是通过配置寄存器,只不过固件库是把寄存器封装在一个结构体里直接调用即可。1.在固件库的文件夹中的USER里新建LED文件夹,在LED文件夹中新建led.c和led.h文件。把led.c新添加进USER里(双击USER然后添加)led.h添加方式:在led.c里包含进去即可 #include “led.h”然后编译led.c 编译完成后就可以看到led.h在led.c的目录下2.定义声明在led.c中加入库函数#include “stm32f10x.

2021-10-03 17:45:15 239

原创 构建库函数模块

1.库函数1.1DOC(工程说明)包含readme.txt文本,用于说明、描述1.2Libraries(固件库)1.2.1CMSIS内核配置相关其中startup中是启动文件,包括很多类型,如图其余的是内核相关文件,如图1.2.2 STM32F10x_StdPeriph_Driver(外设驱动)包括inc、和src文件夹inc中包含的是src中包含的是如dac、adc、gpio等.c文件1.3Project(工程)安装到这里1.4User(用户)存放main.c

2021-09-30 11:40:58 115

原创 构建库函数

1.为什么要构建库函数因为当我们不构建库函数时,写出的程序可读性不强(当不加注释时,不知道程序写的是什么)因此我们可以通过配置寄存器的方式来解决,使代码具有可移植性。2.实际操作:构建固件库双引号的意思是表示从当前工程的目录里寻找到文件,而尖括号<>表示从特定目录c标准库下寻找文件,所以我们要在当前文件夹下新建一个stm32f10x.h的文件2.1怎么填加这个stm32f10x.h文件呢?我们编译一下main.c程序即可自动添加3.在stm32f10x.h中定义下一步我们就可

2021-09-30 10:40:15 344

空空如也

空空如也

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

TA关注的人

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