资源简介
stm32f103和串口输出数据的US100模块进行工作,串口1显示距离值

代码片段和文件信息
/**********************************************************************************
* 文件名 :key.c
* 描述 :按键扫描(系统滴答时钟SysTick实现扫描延时)
* 实验平台:NiRen_TwoHeart系统板
* 硬件连接: PB1 -> KEY1
* PB2 -> KEY2
* 库版本 :ST_v3.5
**********************************************************************************/
#include “key.h“
#include “SysTick.h“
/*******************************************************************************
* 函数名 : Key_GPIO_Config
* 描述 : KEY IO配置
* 输入 : 无
* 输出 : 无
* 返回 : 无
* 说明 : KEY设置的引脚为:PA4-7
*******************************************************************************/
void Key_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO_InitTypeDef类型的GPIO初始化结构体
RCC_APB2PeriphClockCmd(KEY_RCC ENABLE); //使能GPIOA的外设时钟
GPIO_InitStructure.GPIO_Pin = KEY0 | KEY1 | KEY2 | KEY3; //选择要初始化的GPIOA引脚(PB1PB2)
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置引脚工作模式为上拉输入
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚输出最大速率为50MHz
GPIO_Init(KEY_PORT &GPIO_InitStructure); //调用库函数中的GPIO初始化函数,初始化GPIOA中的PB1PB2引脚
}
/*******************************************************************************
* 函数名 : Key_Detection
* 描述 : 按键按下检测
* 输入 : GPIOx:按键对应的GPIO,GPIO_Pin:对应按键端口
* 输出 : 无
* 返回 : KEY_DOWN(0):对应按键按下,KEY_UP(1):对应按键没按下
* 说明 : KEY设置的引脚为:PA4-7
*******************************************************************************/
u8 Key_Down_Detection(GPIO_TypeDef* GPIOx u16 GPIO_Pin)
{
if(GPIO_ReadInputDataBit(GPIOxGPIO_Pin) == KEY_DOWN) //检测是否有按键按下
{
delay_ms(10); //延时消抖
if(GPIO_ReadInputDataBit(GPIOxGPIO_Pin) == KEY_DOWN) //检测是否有按键按下
{
while(GPIO_ReadInputDataBit(GPIOxGPIO_Pin) == KEY_DOWN); //等待按键释放
return KEY_DOWN;
}
else
{
return KEY_UP;
}
}
else
{
return KEY_UP;
}
}
/*******************************************************************************
* 函数名 : Key_Down_Scan
* 描述 : 按键按下扫描
* 输入 : 无
* 输出 : 0:没有按键按下,1:按键按下
* 返回 : 无
* 说明 : KEY设置的引脚为:PA4-7
*******************************************************************************/
u16 Key_Down_Scan(void)
{
u16 downflag = 0;
u16 value = 0;
downflag = GPIO_ReadInputData(KEY_PORT);
value = (~downflag) & (0x0001 << 4);
if((~downflag) & (0x0001 << 4)) //检测是否有按键按下
{
delay_ms(1); //延时消抖
downflag = GPIO_ReadInputData(KEY_PORT);
if((~downflag) & (0x0001 << 4)) //检测是否有按键按下
{
value = (~downflag) & (0x0001 << 4);
while((~GPIO_ReadInputData(KEY_PORT))& (0x0001 << 4));//等待按键抬起
}
}
else if((~downflag) & (0x0001 << 5)) //检测是否有按键按下
{
delay_ms(1); //延时消抖
downflag = GPIO_ReadInputData(KEY_PORT);
if((~downflag) & (0x0001 << 5)) //检测是否有按键按下
{
value = (~downflag) & (0x0001 << 5);
while((~GPIO_ReadInputData(KEY_PORT))& (0x0001 << 5));//等待按键抬起
}
}
else if((~downflag) & (0x0001 << 6)) //检测是
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-27 14:37 超声波US100\
目录 0 2017-12-27 14:37 超声波US100\BSP\
目录 0 2017-12-27 14:37 超声波US100\BSP\Key\
文件 3962 2017-06-11 22:37 超声波US100\BSP\Key\key.c
文件 513 2017-12-27 14:15 超声波US100\BSP\Key\key.h
目录 0 2017-12-27 14:37 超声波US100\BSP\LED\
文件 2678 2017-06-04 13:08 超声波US100\BSP\LED\Led.c
文件 1016 2017-06-04 01:50 超声波US100\BSP\LED\Led.h
目录 0 2017-12-27 21:54 超声波US100\BSP\SysTick\
文件 3040 2017-12-27 21:54 超声波US100\BSP\SysTick\SysTick.c
文件 163 2017-06-11 22:36 超声波US100\BSP\SysTick\SysTick.h
目录 0 2017-12-27 14:37 超声波US100\BSP\TIMER\
文件 1603 2013-09-28 11:23 超声波US100\BSP\TIMER\timer.c
文件 126 2013-09-28 11:23 超声波US100\BSP\TIMER\timer.h
目录 0 2017-12-27 20:00 超声波US100\BSP\USART\
文件 6898 2017-12-27 20:00 超声波US100\BSP\USART\usart.c
文件 591 2017-06-11 23:00 超声波US100\BSP\USART\usart.h
目录 0 2017-12-27 14:37 超声波US100\CMSIS\
文件 17273 2010-06-07 10:25 超声波US100\CMSIS\core_cm3.c
文件 85714 2011-02-09 14:59 超声波US100\CMSIS\core_cm3.h
目录 0 2017-12-27 14:37 超声波US100\CMSIS\startup\
目录 0 2017-12-27 14:37 超声波US100\CMSIS\startup\arm\
文件 15766 2011-03-10 10:52 超声波US100\CMSIS\startup\arm\startup_stm32f10x_cl.s
文件 15503 2011-03-10 10:52 超声波US100\CMSIS\startup\arm\startup_stm32f10x_hd.s
文件 15692 2011-03-10 10:52 超声波US100\CMSIS\startup\arm\startup_stm32f10x_hd_vl.s
文件 12376 2011-03-10 10:52 超声波US100\CMSIS\startup\arm\startup_stm32f10x_ld.s
文件 13656 2011-03-10 10:52 超声波US100\CMSIS\startup\arm\startup_stm32f10x_ld_vl.s
文件 12765 2011-03-10 10:52 超声波US100\CMSIS\startup\arm\startup_stm32f10x_md.s
文件 14073 2011-03-10 10:51 超声波US100\CMSIS\startup\arm\startup_stm32f10x_md_vl.s
文件 15955 2011-03-10 10:51 超声波US100\CMSIS\startup\arm\startup_stm32f10x_xl.s
文件 633933 2013-07-30 23:52 超声波US100\CMSIS\stm32f10x.h
............此处省略133个文件信息
相关资源
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
评论
共有 条评论