STM32学习第一周之 红外光电

发布者:码农侠最新更新时间:2019-08-19 来源: eefocus关键字:STM32  红外光电  蜂鸣器 手机看文章 扫描二维码
随时随地手机看文章

如果红外光电开关检测到障碍物,蜂鸣器响,RGBLED 显示红色,如果没有检测到障碍物,蜂鸣器不响,RGBLED 显示绿色

注意:添加一个 InfraredPSwitch.c 和 InfraredPSwitch.h 文件

InfraredPSwitch.h 文件里面,对红外光电开关使用的引脚和端口进行宏定义

InfraredPSwitch.c 文 件 里 面 , 设 计 一 个 InfraredPSwitch_Init 函 数 , 一 个

InfraredPSwitch_Check()函数,返回值为检测到的状态值


如有好的建议还望不吝赐教嚛


直接上代码

InfrarePSwitch_H


#ifndef __InfrarePSwitch_H

#define __InfrarePSwitch_H  

#include "sys.h"

 

#define  sign  GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_1)  


void InfrarePSwitch_Init(void);

void InfrarePSwitch_Check(void);

 

#endif


InfrarePSwitch.c


#include "sys.h"

#include "delay.h"

#include "RGBLED.h" 

#include "BEEP.h" 

#include "usart.h"

#include "InfrarePSwitch.h"


//初始化PF1口读取光电开关电平

void InfrarePSwitch_Init(void)

{

 

GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE);  


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;  

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  

GPIO_Init(GPIOF, &GPIO_InitStructure);


GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_1);

}


void InfrarePSwitch_Check(void)

{

//GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_1);

if(sign == 0)

{

RGBLED_Display(RED, 1);

BEEP = 0;

}else

{

RGBLED_Display(GREEN, 1);

BEEP = 1;

}

}`


关于RGBLED_Display();还请参见第一篇笔记。

链接呈上 https://mp.csdn.net/mdeditor/90343426#


注意: 采用电源模块为红外光电供电时,注意GND和VCC的连接。

将两个线都接在电源模块上;不要一根接在电源模块,另一根接在开发板上。


关键字:STM32  红外光电  蜂鸣器 引用地址:STM32学习第一周之 红外光电

上一篇:STM32学习第一周之 按键矩阵
下一篇:STM32学习第一周之 循环显示RGBLED的七种颜色

推荐阅读最新更新时间:2024-11-03 18:26

使用JTAG连接STM32 SWD模式 (STM32L011为例)
使用JLINK的JTAG接口连接STM32的SWD模式 近期使用STM32L011做产品,第一次接触SWD模式,之前都是使用JTAG接口进行下载仿真。初次使用,问题多多。现在将我遇到的问题,和解决办法贴出来,希望能够帮到后来人。 使用的软件 Keil 5 硬件芯片 STM32L011F4P6 连接器 J-LINK V9 1:KEIL 设置 这个比较简单,在DEBUG选项,选择使用J-LINK 然后点击settings,将port由JTAG 改为SW 如果连接成功,则会在SW Device栏显示信息。 2:连线 在使用JTAG连接SWD时,比较茫然,网上搜索一番,得到信息是JTAG完全胜任SW
[单片机]
使用JTAG连接<font color='red'>STM32</font> SWD模式 (STM32L011为例)
STM32外设结构体定义和时钟初始化语句顺序导致编译
1.编写外设初始化函数时候需要定义外设的结构体,以及初始化外设时钟等 但是今天偶然间把代码语句写反了,然后编译不通过,提示错误信息为:dac.c(41): error: #268: declaration may not appear after executable statement in block DAC_InitTypeDef DAC_InitStructure;这个错误提示之前一篇博文也出现过,但是原因好像不是这个,还是贴出来作为经验吧。 void DAC_Mode_Config(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); DAC_In
[单片机]
STM32微控制器应用于Pebble智能手表
意法半导体(STMicroelectronics,简称ST)的STM32微控制器被Pebble智能手表所采用,用于控制这款创新的兼容iPhone手机和安卓智能手机的穿戴式产品。 Pebble智能手表通过蓝牙无缝连接到iPhone和安卓智能手机,当有来电、电子邮件和短信时,可通过静音振动通知用户。Pebble智能手表内置实时性能和能效俱佳的STM32 F2微控制器,使手表在功能性和电池使用寿命之间实现完美平衡,为用户提供全定制功能,配备精美的表盘下载和实用的联网应用软件。 Pebble创始人、首席执行官Eric Migicovsky表示:“Pebble穿戴式产品的用户想要一个这样的手表,它能够无缝连接其它设备,连续运行几
[单片机]
STM32入门笔记(1)——时钟
STM32中使用任何一个外设都必须打开相应的时钟。在STM32中有5个时钟源可供用户选择: 1.HSI高速内部时钟,RC震荡器,频率为8MHz。 2.HSE高速外部时钟,右英/陶瓷谐振器,或着外部时钟源,4MHz-16MHz. 3.LSI内部低速时钟,RC震荡器频率为40Hz。 4.LSE外部低速时钟,接频率为32.768KHz的石英晶体。 5.PLL锁相环频输出,时钟源可选为HIS/2、HSE或HSE/2。倍频可选2-16倍,但其输出频率最大不能超过72MHz。 系统时钟SYSCLK,它是供STM32中绝大部分器件工作的时钟源,系统时钟可选择为PLL输出、HSI或者HSE。系统时钟的做大频率为72MHz,它通过AHB分频
[单片机]
<font color='red'>STM32</font>入门笔记(1)——时钟
gd32和stm32的编程区别
GD32和STM32是目前市场上比较流行的两种芯片,它们都具有高性能、低功耗和丰富的外设等特点,因此得到了广泛的应用。但是,GD32和STM32在编程上还是存在差异的,本文将就此进行详细地解析。 一、GD32和STM32的概述 GD32和STM32是龙芯(RISC-V)和意法半导体(ARM Cortex-M)两家公司推出的芯片,由于两家公司的巨大影响力,它们在市场上一直处于领先位置。GD32是龙芯推出的32位微控制器,基于RISC-V架构,主要应用于智能家居、物联网和工业控制等领域;STM32是意法半导体推出的32位微控制器,基于ARM Cortex-M架构,主要应用于汽车、医疗、电力等领域。 二、GD32和STM32的编程区别
[单片机]
eclipse配置st-link下载stm32 bin文件
Run-- External Tools-- External Tools Configration 勾掉 Build before lanch,禁止每次下载前重新编译工程
[单片机]
eclipse配置st-link下载<font color='red'>stm32</font> bin文件
STM32中断数据回调函数接收处理
1.定义一个空的指针函数 指针函数的参数是uint8_t 类型ch typedef void (* usart_recv_callback)(uint8_t ch); 2.声明这个类型 usart_recv_callback usart1_recv_cb; 3.串口配置时,一个形参为串口中断接收回调 void Usart_Config(USART_TypeDef* USARTx, uint32_t baudRate, usart_recv_callback cb) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_Ini
[单片机]
STM32 UART4,UART5配置方式
昨天偶然用到STM32 UART4,UART5两个串口,我开始觉得配置很简单,就简单的配置了,但是怎么都调试部通,我试了1,2串口都没有问题,但是就是4,5不行,我查了一些资料,我相信自己的配置没有错,就是一直调试不通,只能用示波器看了,一看才知道是硬件引脚连错了,电路图上画的就是错的,芯片引脚写的都是错的,我无语了,以后仔细看芯片手册................ 配置如下: /* * 函数名:UART4_Config * 描述 :UART4 GPIO 配置,工作模式配置。115200 8-N-1 * 输入 :无 * 输出 : 无 * 调用 :外部调用 */ void UART4_Config(void)
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved