STM32F103x/Free RTOS系统学习笔记之SR04超声波测距串口输出(1)-CXM

本文档介绍了如何在STM32F103C6微控制器上使用FreeRTOS操作系统,通过HC-SR04超声波传感器进行测距,并实时通过串口打印数据。作者详细讲解了串口配置、定时器初始化以及超声波传感器的外部中断检测方法。代码示例展示了如何配置GPIO、EXTI和NVIC中断,以及如何处理超声波测距数据并将其发送到串口。

前言

这一次使用的是超声波做实验,以前使用51单片机的时候用SR04超声波时总是在while(echo)使得得非常占用资源, 不得已得用中断或者阻塞的方式,较为麻烦,而且融合多个传感器51显得越来越不够用所以我打算从STM32用Free RTOS系统作为平台,实现的效果为实时串口打印超声波测距的数据


目录

前言

1.串口配置和输出

2.定时器配置

3.HC-SR04超声波测距代码

        通用配置

       超声波初始化

      第一种:外部中断检测法


硬件

HC-SR04

STM32F103C6

首先我们使用上一次的搭建好的环境

STM32F103x/Free RTOS系统学习笔记之环境搭建-CXM_CHENxiaomingming的博客-CSDN博客

\RTOS\stm32F103C6-TROS\inc\FreeRTOSConfig.h 

在配置文件中需要吧#define configTOTAL_HEAP_SIZE        ( ( size_t ) ( 10*1024 ) ) 

改为#define configTOTAL_HEAP_SIZE        ( ( size_t ) ( 1024 ) ) 这样编译的文件大小不会超过C6芯片的内存。

1.串口配置和输出

串口基本配置

void uart_init(u32 bound)
{
	
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);	//使能USART1,GPIOA时钟

	//USART1_TX   GPIOA.9
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	//复用推挽输出
	GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.9

	//USART1_RX	  GPIOA.10初始化
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;//PA10
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
	GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.10  

	//Usart1 NVIC 配置
	NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;				//串口中断通道
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;//抢占优先级3
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;		//子优先级1
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//IRQ通道使能
	NVIC_Init(&NVIC_InitS
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHENxiaomingming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值