国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32超聲波——HC_SR04

這篇具有很好參考價(jià)值的文章主要介紹了STM32超聲波——HC_SR04。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一.超聲波圖片

測(cè)量距離:2cm——400cm
超聲波stm32,stm32,mongodb,嵌入式硬件

二.時(shí)序圖

(1).以下時(shí)序圖要先提供一個(gè)至少10us的脈沖觸發(fā)信號(hào),告訴單片機(jī)我準(zhǔn)備好了,然后該超聲波模塊內(nèi)部將發(fā)出8個(gè)40Khz的的周期電平并檢測(cè)回波,這時(shí)候是超聲波模塊發(fā)送的波,檢測(cè)能不能發(fā)送超聲波,與單片機(jī)無(wú)關(guān),所以代碼就不用寫(xiě)寫(xiě)這里的代碼,然后一旦檢測(cè)到有回波信號(hào)后則向單片機(jī)輸出回響信號(hào),高電平持續(xù)的時(shí)間就是超聲波發(fā)出波到返回的時(shí)間。

(2).以超聲波為主體,Trig是接受觸發(fā)信號(hào)RX,Echo是發(fā)送超聲波TX。

超聲波stm32,stm32,mongodb,嵌入式硬件

三.超聲波流程

超聲波stm32,stm32,mongodb,嵌入式硬件

四.單位換算

超聲波stm32,stm32,mongodb,嵌入式硬件

五.取余計(jì)算

超聲波stm32,stm32,mongodb,嵌入式硬件

六.換算距離

從下圖手冊(cè)可知,我們距離s可以等于時(shí)間微妙us/58,單位是cm,所以把定時(shí)器設(shè)置成1ms,在然后在定時(shí)器中斷里面設(shè)置一個(gè)標(biāo)志位,進(jìn)去一次就是1ms,然后標(biāo)志位在乘于一個(gè)1000,就是把1ms換算成1000us了,然后這個(gè)是來(lái)回的時(shí)間,但是要注意超聲波回來(lái)的最后一刻,定時(shí)器沒(méi)有達(dá)到ARR自動(dòng)重裝值的話(huà),就結(jié)束了,這個(gè)也要算進(jìn)去時(shí)間,就是TIM_GetCounter,然后t得到之后,t需要/2,因?yàn)槭莵?lái)回的時(shí)間,然后因?yàn)槁曀偈?40m/s,需要把us換成s,就是t * 0.00001/2=t/2000000,然后340m/s需要換成cm,也就是340 * 100,所以s=t/2000000 * 340 * 100,最后換算就是t/58。
超聲波stm32,stm32,mongodb,嵌入式硬件

七.超聲波代碼

main.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Buzzer.h"
#include "OLED.h"

float distance;

int main()
{
	Ultrasonic_Init();
	OLED_Init();
	OLED_ShowString(1,1,"distance");
	OLED_ShowString(2,1,"000.000cm");
	while(1)
	{
		distance=Ultrasonic_Getdistance();
		OLED_ShowNum(2,1,distance,3);//最多3位,因?yàn)樽罡邷y(cè)量4m,也就是400cm
		OLED_ShowNum(2,5,(uint16_t)(distance*1000)%1000,3);//小數(shù)也是3位,然后這里OLED_ShowNum是只顯示整數(shù),所以需要把float類(lèi)型強(qiáng)轉(zhuǎn)int類(lèi)型
		Delay_ms(66);//周期至少60ms
	}
}

Buzzer.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "Buzzer.h"

uint32_t Ultrasonic_Num=0;						// 計(jì)數(shù)值

void Ultrasonic_Port()
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	GPIO_InitTypeDef GPIO_InitStructure;
	
	//GPIOA0--RX--Trig
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽輸出 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	//GPIOA1---TX--Echo
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_Init(GPIOA,&GPIO_InitStructure);

}

void Ultrasonic_TIM(uint16_t arr,uint16_t psc)
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
	
	TIM_TimeBaseInitTypeDef TIM_InitStructure;
	TIM_InitStructure.TIM_Period = arr-1;
	TIM_InitStructure.TIM_Prescaler = psc-1;
	TIM_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_InitStructure.TIM_RepetitionCounter = 0;
	TIM_TimeBaseInit(TIM3,&TIM_InitStructure);

	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
	
	NVIC_InitTypeDef NVIC_InitStructure;
	NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 8;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);

	TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
	TIM_Cmd(TIM3, DISABLE);
}

void Ultrasonic_Init()
{
	Ultrasonic_Port();
	Ultrasonic_TIM(1000,72);
}

//觸發(fā)超聲波
void Ultrasonic_Start()
{
		INC = 1;           
		Delay_us(12);//Trig給高電平12us 
    INC = 0;
}

//測(cè)量時(shí)間
int Ultrasonic_GetTime(void)
{
	uint32_t t;
	//1ms*1000=1000us,這里化成us
	t = Ultrasonic_Num * 1000; 
	//t=t+TIM_GetCounter(TIM3),意思是:t是上面獲取的定時(shí)器爆表后的時(shí)間,爆表一次就是1000us,也就是ARR為1000時(shí)就是1000us,當(dāng)然如果超聲波在下一次計(jì)時(shí)沒(méi)有爆表就結(jié)束了,
	//假如此時(shí)CNT=900,那我們假如Ultrasonic_Num=1,就是1000us,然后t=1000+900=1900us
	t +=TIM_GetCounter(TIM3);
	return t;
}

//測(cè)量距離
float Ultrasonic_Getdistance(void)
{
	int i =0;
	uint32_t t = 0;
	float distance = 0;
	float sum = 0;
	
	while(i!=5)			//五次測(cè)量
	{
		Ultrasonic_Start();				//觸發(fā)超聲波
		
		TIM_SetCounter(TIM3,0);
		Ultrasonic_Num  = 0;			 //定時(shí)器清0
		
		while(IN0 == 0);
		TIM_Cmd(TIM3,ENABLE);     //啟動(dòng)定時(shí)器
		i++;
		while(IN0 == 1);
		TIM_Cmd(TIM3, DISABLE);		//關(guān)閉定時(shí)器
		
		t = Ultrasonic_GetTime(); //獲取時(shí)間
		
		distance =(float)t /58;  //測(cè)量距離
		sum += distance; 				//五次測(cè)量總和
	}
		distance = (sum/5);       //取平均值
	
	return distance;
}

void TIM3_IRQHandler(void)//0.001s=1ms
{
	if(TIM_GetITStatus(TIM3,TIM_IT_Update) == SET)
	{
		Ultrasonic_Num++; //計(jì)數(shù)值+1
	}
	TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
}

Buzzer.h

#include "stm32f10x.h"                  // Device header
#include "sys.h"

#ifndef __BUZZER_H
#define __BUZZER_H

#define INC PAout(0)
#define IN0 PAin(1)

void Ultrasonic_Init(void);
float Ultrasonic_Getdistance(void);

#endif

sys.c






sys.h

#ifndef __SYS_H
#define __SYS_H	
#include "stm32f10x.h"

//位帶操作,實(shí)現(xiàn)51類(lèi)似的GPIO控制功能
//具體實(shí)現(xiàn)思想,參考<<CM3權(quán)威指南>>第五章(87頁(yè)~92頁(yè)).
//IO口操作宏定義
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) 
#define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr)) 
#define BIT_ADDR(addr, bitnum)   MEM_ADDR(BITBAND(addr, bitnum)) 
//IO口地址映射
#define GPIOA_ODR_Addr    (GPIOA_BASE+12) //0x4001080C 
#define GPIOB_ODR_Addr    (GPIOB_BASE+12) //0x40010C0C 
#define GPIOC_ODR_Addr    (GPIOC_BASE+12) //0x4001100C 
#define GPIOD_ODR_Addr    (GPIOD_BASE+12) //0x4001140C 
#define GPIOE_ODR_Addr    (GPIOE_BASE+12) //0x4001180C 
#define GPIOF_ODR_Addr    (GPIOF_BASE+12) //0x40011A0C    
#define GPIOG_ODR_Addr    (GPIOG_BASE+12) //0x40011E0C    

#define GPIOA_IDR_Addr    (GPIOA_BASE+8) //0x40010808 
#define GPIOB_IDR_Addr    (GPIOB_BASE+8) //0x40010C08 
#define GPIOC_IDR_Addr    (GPIOC_BASE+8) //0x40011008 
#define GPIOD_IDR_Addr    (GPIOD_BASE+8) //0x40011408 
#define GPIOE_IDR_Addr    (GPIOE_BASE+8) //0x40011808 
#define GPIOF_IDR_Addr    (GPIOF_BASE+8) //0x40011A08 
#define GPIOG_IDR_Addr    (GPIOG_BASE+8) //0x40011E08 
 
//IO口操作,只對(duì)單一的IO口!
//確保n的值小于16!
#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)  //輸出 
#define PAin(n)    BIT_ADDR(GPIOA_IDR_Addr,n)  //輸入 

#define PBout(n)   BIT_ADDR(GPIOB_ODR_Addr,n)  //輸出 
#define PBin(n)    BIT_ADDR(GPIOB_IDR_Addr,n)  //輸入 

#define PCout(n)   BIT_ADDR(GPIOC_ODR_Addr,n)  //輸出 
#define PCin(n)    BIT_ADDR(GPIOC_IDR_Addr,n)  //輸入 

#define PDout(n)   BIT_ADDR(GPIOD_ODR_Addr,n)  //輸出 
#define PDin(n)    BIT_ADDR(GPIOD_IDR_Addr,n)  //輸入 

#define PEout(n)   BIT_ADDR(GPIOE_ODR_Addr,n)  //輸出 
#define PEin(n)    BIT_ADDR(GPIOE_IDR_Addr,n)  //輸入

#define PFout(n)   BIT_ADDR(GPIOF_ODR_Addr,n)  //輸出 
#define PFin(n)    BIT_ADDR(GPIOF_IDR_Addr,n)  //輸入

#define PGout(n)   BIT_ADDR(GPIOG_ODR_Addr,n)  //輸出 
#define PGin(n)    BIT_ADDR(GPIOG_IDR_Addr,n)  //輸入


#endif

OLED.c

#include "stm32f10x.h"
#include "OLED_Font.h"

/*引腳配置*/
#define OLED_W_SCL(x)		GPIO_WriteBit(GPIOB, GPIO_Pin_12, (BitAction)(x))
#define OLED_W_SDA(x)		GPIO_WriteBit(GPIOB, GPIO_Pin_13, (BitAction)(x))

/*引腳初始化*/
void OLED_I2C_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
 	GPIO_Init(GPIOB, &GPIO_InitStructure);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
 	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	OLED_W_SCL(1);
	OLED_W_SDA(1);
}

/**
  * @brief  I2C開(kāi)始
  * @param  無(wú)
  * @retval 無(wú)
  */
void OLED_I2C_Start(void)
{
	OLED_W_SDA(1);
	OLED_W_SCL(1);
	OLED_W_SDA(0);
	OLED_W_SCL(0);
}

/**
  * @brief  I2C停止
  * @param  無(wú)
  * @retval 無(wú)
  */
void OLED_I2C_Stop(void)
{
	OLED_W_SDA(0);
	OLED_W_SCL(1);
	OLED_W_SDA(1);
}

/**
  * @brief  I2C發(fā)送一個(gè)字節(jié)
  * @param  Byte 要發(fā)送的一個(gè)字節(jié)
  * @retval 無(wú)
  */
void OLED_I2C_SendByte(uint8_t Byte)
{
	uint8_t i;
	for (i = 0; i < 8; i++)
	{
		OLED_W_SDA(Byte & (0x80 >> i));
		OLED_W_SCL(1);
		OLED_W_SCL(0);
	}
	OLED_W_SCL(1);	//額外的一個(gè)時(shí)鐘,不處理應(yīng)答信號(hào)
	OLED_W_SCL(0);
}

/**
  * @brief  OLED寫(xiě)命令
  * @param  Command 要寫(xiě)入的命令
  * @retval 無(wú)
  */
void OLED_WriteCommand(uint8_t Command)
{
	OLED_I2C_Start();
	OLED_I2C_SendByte(0x78);		//從機(jī)地址
	OLED_I2C_SendByte(0x00);		//寫(xiě)命令
	OLED_I2C_SendByte(Command); 
	OLED_I2C_Stop();
}

/**
  * @brief  OLED寫(xiě)數(shù)據(jù)
  * @param  Data 要寫(xiě)入的數(shù)據(jù)
  * @retval 無(wú)
  */
void OLED_WriteData(uint8_t Data)
{
	OLED_I2C_Start();
	OLED_I2C_SendByte(0x78);		//從機(jī)地址
	OLED_I2C_SendByte(0x40);		//寫(xiě)數(shù)據(jù)
	OLED_I2C_SendByte(Data);
	OLED_I2C_Stop();
}

/**
  * @brief  OLED設(shè)置光標(biāo)位置
  * @param  Y 以左上角為原點(diǎn),向下方向的坐標(biāo),范圍:0~7
  * @param  X 以左上角為原點(diǎn),向右方向的坐標(biāo),范圍:0~127
  * @retval 無(wú)
  */
void OLED_SetCursor(uint8_t Y, uint8_t X)
{
	OLED_WriteCommand(0xB0 | Y);					//設(shè)置Y位置
	OLED_WriteCommand(0x10 | ((X & 0xF0) >> 4));	//設(shè)置X位置高4位
	OLED_WriteCommand(0x00 | (X & 0x0F));			//設(shè)置X位置低4位
}

/**
  * @brief  OLED清屏
  * @param  無(wú)
  * @retval 無(wú)
  */
void OLED_Clear(void)
{  
	uint8_t i, j;
	for (j = 0; j < 8; j++)
	{
		OLED_SetCursor(j, 0);
		for(i = 0; i < 128; i++)
		{
			OLED_WriteData(0x00);
		}
	}
}

/**
  * @brief  OLED顯示一個(gè)字符
  * @param  Line 行位置,范圍:1~4
  * @param  Column 列位置,范圍:1~16
  * @param  Char 要顯示的一個(gè)字符,范圍:ASCII可見(jiàn)字符
  * @retval 無(wú)
  */
void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char)
{      	
	uint8_t i;
	OLED_SetCursor((Line - 1) * 2, (Column - 1) * 8);		//設(shè)置光標(biāo)位置在上半部分
	for (i = 0; i < 8; i++)
	{
		OLED_WriteData(OLED_F8x16[Char - ' '][i]);			//顯示上半部分內(nèi)容
	}
	OLED_SetCursor((Line - 1) * 2 + 1, (Column - 1) * 8);	//設(shè)置光標(biāo)位置在下半部分
	for (i = 0; i < 8; i++)
	{
		OLED_WriteData(OLED_F8x16[Char - ' '][i + 8]);		//顯示下半部分內(nèi)容
	}
}

/**
  * @brief  OLED顯示字符串
  * @param  Line 起始行位置,范圍:1~4
  * @param  Column 起始列位置,范圍:1~16
  * @param  String 要顯示的字符串,范圍:ASCII可見(jiàn)字符
  * @retval 無(wú)
  */
void OLED_ShowString(uint8_t Line, uint8_t Column, char *String)
{
	uint8_t i;
	for (i = 0; String[i] != '\0'; i++)
	{
		OLED_ShowChar(Line, Column + i, String[i]);
	}
}

/**
  * @brief  OLED次方函數(shù)
  * @retval 返回值等于X的Y次方
  */
uint32_t OLED_Pow(uint32_t X, uint32_t Y)
{
	uint32_t Result = 1;
	while (Y--)
	{
		Result *= X;
	}
	return Result;
}

/**
  * @brief  OLED顯示數(shù)字(十進(jìn)制,正數(shù))
  * @param  Line 起始行位置,范圍:1~4
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~4294967295
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~10
  * @retval 無(wú)
  */
void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length)
{
	uint8_t i;
	for (i = 0; i < Length; i++)							
	{
		OLED_ShowChar(Line, Column + i, Number / OLED_Pow(10, Length - i - 1) % 10 + '0');
	}
}

/**
  * @brief  OLED顯示數(shù)字(十進(jìn)制,帶符號(hào)數(shù))
  * @param  Line 起始行位置,范圍:1~4
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:-2147483648~2147483647
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~10
  * @retval 無(wú)
  */
void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length)
{
	uint8_t i;
	uint32_t Number1;
	if (Number >= 0)
	{
		OLED_ShowChar(Line, Column, '+');
		Number1 = Number;
	}
	else
	{
		OLED_ShowChar(Line, Column, '-');
		Number1 = -Number;
	}
	for (i = 0; i < Length; i++)							
	{
		OLED_ShowChar(Line, Column + i + 1, Number1 / OLED_Pow(10, Length - i - 1) % 10 + '0');
	}
}

/**
  * @brief  OLED顯示數(shù)字(十六進(jìn)制,正數(shù))
  * @param  Line 起始行位置,范圍:1~4
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~0xFFFFFFFF
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~8
  * @retval 無(wú)
  */
void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length)
{
	uint8_t i, SingleNumber;
	for (i = 0; i < Length; i++)							
	{
		SingleNumber = Number / OLED_Pow(16, Length - i - 1) % 16;
		if (SingleNumber < 10)
		{
			OLED_ShowChar(Line, Column + i, SingleNumber + '0');
		}
		else
		{
			OLED_ShowChar(Line, Column + i, SingleNumber - 10 + 'A');
		}
	}
}

/**
  * @brief  OLED顯示數(shù)字(二進(jìn)制,正數(shù))
  * @param  Line 起始行位置,范圍:1~4
  * @param  Column 起始列位置,范圍:1~16
  * @param  Number 要顯示的數(shù)字,范圍:0~1111 1111 1111 1111
  * @param  Length 要顯示數(shù)字的長(zhǎng)度,范圍:1~16
  * @retval 無(wú)
  */
void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length)
{
	uint8_t i;
	for (i = 0; i < Length; i++)							
	{
		OLED_ShowChar(Line, Column + i, Number / OLED_Pow(2, Length - i - 1) % 2 + '0');
	}
}

/**
  * @brief  OLED初始化
  * @param  無(wú)
  * @retval 無(wú)
  */
void OLED_Init(void)
{
	uint32_t i, j;
	
	for (i = 0; i < 1000; i++)			//上電延時(shí)
	{
		for (j = 0; j < 1000; j++);
	}
	
	OLED_I2C_Init();			//端口初始化
	
	OLED_WriteCommand(0xAE);	//關(guān)閉顯示
	
	OLED_WriteCommand(0xD5);	//設(shè)置顯示時(shí)鐘分頻比/振蕩器頻率
	OLED_WriteCommand(0x80);
	
	OLED_WriteCommand(0xA8);	//設(shè)置多路復(fù)用率
	OLED_WriteCommand(0x3F);
	
	OLED_WriteCommand(0xD3);	//設(shè)置顯示偏移
	OLED_WriteCommand(0x00);
	
	OLED_WriteCommand(0x40);	//設(shè)置顯示開(kāi)始行
	
	OLED_WriteCommand(0xA1);	//設(shè)置左右方向,0xA1正常 0xA0左右反置
	
	OLED_WriteCommand(0xC8);	//設(shè)置上下方向,0xC8正常 0xC0上下反置

	OLED_WriteCommand(0xDA);	//設(shè)置COM引腳硬件配置
	OLED_WriteCommand(0x12);
	
	OLED_WriteCommand(0x81);	//設(shè)置對(duì)比度控制
	OLED_WriteCommand(0xCF);

	OLED_WriteCommand(0xD9);	//設(shè)置預(yù)充電周期
	OLED_WriteCommand(0xF1);

	OLED_WriteCommand(0xDB);	//設(shè)置VCOMH取消選擇級(jí)別
	OLED_WriteCommand(0x30);

	OLED_WriteCommand(0xA4);	//設(shè)置整個(gè)顯示打開(kāi)/關(guān)閉

	OLED_WriteCommand(0xA6);	//設(shè)置正常/倒轉(zhuǎn)顯示

	OLED_WriteCommand(0x8D);	//設(shè)置充電泵
	OLED_WriteCommand(0x14);

	OLED_WriteCommand(0xAF);	//開(kāi)啟顯示
		
	OLED_Clear();				//OLED清屏
}

OLED.h

#ifndef __OLED_H
#define __OLED_H

#include "stm32f10x.h"                  // Device header


void OLED_Init(void);
void OLED_Clear(void);
void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char);
void OLED_ShowString(uint8_t Line, uint8_t Column, char *String);
void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length);
void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);

#endif

OLED_Font.h文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-817642.html

#ifndef __OLED_FONT_H
#define __OLED_FONT_H

#include "stm32f10x.h"                  // Device header


/*OLED字模庫(kù),寬8像素,高16像素*/
const uint8_t OLED_F8x16[][16]=
{
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//  0
	
	0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
	
	0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
	
	0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,
	0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
	
	0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,
	0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
	
	0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,
	0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
	
	0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,
	0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
	
	0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
	
	0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,
	0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
	
	0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,
	0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
	
	0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,
	0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
	
	0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,
	0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
	
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
	
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
	
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
	
	0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,
	0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
	
	0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
	0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
	
	0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
	
	0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,
	0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
	
	0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,
	0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
	
	0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,
	0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
	
	0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,
	0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
	
	0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,
	0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
	
	0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,
	0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
	
	0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
	0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
	
	0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
	0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
	
	0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,
	0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
	
	0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
	0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
	
	0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,
	0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
	
	0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
	0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
	
	0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,
	0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
	
	0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,
	0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
	
	0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,
	0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
	
	0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,
	0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
	
	0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,
	0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
	
	0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,
	0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
	
	0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,
	0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
	
	0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,
	0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
	
	0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,
	0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
	
	0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,
	0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
	
	0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,
	0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
	
	0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
	
	0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,
	0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
	
	0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,
	0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
	
	0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,
	0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
	
	0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,
	0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
	
	0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,
	0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
	
	0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,
	0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
	
	0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,
	0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
	
	0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,
	0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
	
	0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,
	0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
	
	0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,
	0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
	
	0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,
	0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
	
	0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,
	0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
	
	0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,
	0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
	
	0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,
	0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
	
	0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,
	0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
	
	0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,
	0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
	
	0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,
	0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
	
	0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,
	0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
	
	0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
	
	0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
	0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
	
	0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
	
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
	
	0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
	
	0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
	0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
	
	0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,
	0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
	
	0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
	0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
	
	0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,
	0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
	
	0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
	0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
	
	0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
	
	0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,
	0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
	
	0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,
	0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
	
	0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
	
	0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,
	0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
	
	0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,
	0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
	
	0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
	
	0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
	0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
	
	0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,
	0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
	
	0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
	0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
	
	0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,
	0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
	
	0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,
	0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
	
	0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,
	0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
	
	0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,
	0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
	
	0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,
	0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
	
	0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,
	0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
	
	0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,
	0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
	
	0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,
	0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
	
	0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,
	0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
	
	0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,
	0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
	
	0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
	0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
	
	0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,
	0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
	
	0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
	
	0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,
	0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
	
	0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
};

#endif

到了這里,關(guān)于STM32超聲波——HC_SR04的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32外設(shè)系列—HC-SR04(超聲波)

    STM32外設(shè)系列—HC-SR04(超聲波)

    ?? 文章作者:二土電子 ?? 關(guān)注文末公眾號(hào)獲取其他資料和工程文件! ?? 期待大家一起學(xué)習(xí)交流! 超聲波測(cè)距的原理非常簡(jiǎn)單,超聲波發(fā)生器在某一時(shí)刻發(fā)出一個(gè)超聲波信號(hào),當(dāng)這個(gè)超聲波信號(hào)遇到被測(cè)物體后會(huì)反射回來(lái),被超聲波接收器接收到。這樣只要計(jì)算出從發(fā)出

    2024年02月09日
    瀏覽(26)
  • 【STM32】超聲波傳感器HC-SR04知識(shí)

    【STM32】超聲波傳感器HC-SR04知識(shí)

    ????????超聲波傳感器模塊上面通常有兩個(gè)超聲波元器件,一個(gè)用于發(fā)射,一個(gè)用于接收。 ????????電路板上有四個(gè)引腳:VCC、GND、Trig(觸發(fā))、Echo(回應(yīng))。 ????????工作電壓與電流:5V,15mA ????????感應(yīng)距離:2~400cm ????????感測(cè)角度:不小于15度 ??

    2024年02月02日
    瀏覽(55)
  • 【CubeMX配置STM32驅(qū)動(dòng)超聲波模塊(HC-SR04)】

    【CubeMX配置STM32驅(qū)動(dòng)超聲波模塊(HC-SR04)】

    一、CubeMX配置STM32 1、選擇定時(shí)器 選擇 輸入捕獲模式 預(yù)分頻設(shè)置為71,向上計(jì)數(shù),自動(dòng)重裝值65535 然后將名字改為 ECHO 2、配置TRIG口 這里的端口使用其它空閑的IO口是可以的,設(shè)置為輸出模式,其它配置不需要改變,最主要的是 User Label 那兒,需要設(shè)置為 TRIG ,因?yàn)轵?qū)動(dòng)函數(shù)里

    2024年02月02日
    瀏覽(25)
  • HC-SR04超聲波測(cè)距模塊使用方法和例程(STM32)

    HC-SR04超聲波測(cè)距模塊使用方法和例程(STM32)

    基于STM32和HC-SR04模塊實(shí)現(xiàn)超聲波測(cè)距功能 最近在學(xué)STM32做個(gè)簡(jiǎn)單的應(yīng)用實(shí)踐一下,順便水一篇文章。 本文用的單片機(jī)是STM32F103C8T6,超聲波測(cè)距模塊是HC-SR04,顯示測(cè)距結(jié)果用的是0.96寸OLED屏模塊。 下圖中小于10cm時(shí)的顯示結(jié)果有點(diǎn)問(wèn)題,代碼已修復(fù)并更新 修復(fù)后的結(jié)果: 視頻

    2024年02月03日
    瀏覽(20)
  • 基于MAX-10 FPGA 超聲波測(cè)距模塊HC_SR04

    基于MAX-10 FPGA 超聲波測(cè)距模塊HC_SR04

    HC-SR04是一種基于超聲波的測(cè)距模塊。該模塊向前15度內(nèi)發(fā)送超聲波并接收回響,通過(guò)發(fā)出超聲波到收到回響的這個(gè)時(shí)間間隔計(jì)算前方的障礙物距離,可以用來(lái)給智能小車(chē)做障礙物監(jiān)測(cè)。可提供2cm- 400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接

    2024年02月07日
    瀏覽(21)
  • 基于STM32的超聲波HC-SR04和紅外測(cè)距模塊測(cè)量距離的實(shí)驗(yàn)對(duì)比(HAL庫(kù))

    基于STM32的超聲波HC-SR04和紅外測(cè)距模塊測(cè)量距離的實(shí)驗(yàn)對(duì)比(HAL庫(kù))

    ????????前言: 本文主要是為了 日常普通場(chǎng)合 下測(cè)距做的 對(duì)比實(shí)驗(yàn) ,本實(shí)驗(yàn)主要包含 2種模塊 : 超聲波測(cè)距模塊 (HC-SR04)和 紅外測(cè)距模塊 (SHARP GP2Y0A21YK0F)。兩種模塊不管是測(cè)距原理和編程實(shí)驗(yàn)方式都是不相同的,其測(cè)距效果也存在很大差異。感興趣的讀者朋友,

    2023年04月27日
    瀏覽(40)
  • 基于MAX-10 FPGA 讀取超聲波模塊HC_SR04距離數(shù)據(jù)到數(shù)碼管上

    基于MAX-10 FPGA 讀取超聲波模塊HC_SR04距離數(shù)據(jù)到數(shù)碼管上

    將MAX-10小腳丫FPGA和超聲波模塊HC_SR04插在面包板上,用杜邦線(xiàn)將對(duì)應(yīng)的引腳連接好,燒錄程序,小腳丫自帶的數(shù)碼管顯示距離數(shù)據(jù)(單位是厘米)。 這張圖拍花了,數(shù)碼管顯示的數(shù)據(jù)是18CM HC-SR04是一種基于超聲波的測(cè)距模塊。該模塊向前15度內(nèi)發(fā)送超聲波并接收回響,通過(guò)發(fā)

    2024年02月14日
    瀏覽(22)
  • 基于STM32F103C8T6(HAL庫(kù))的HC-SR501紅外人體傳感及HC-SR04超聲波測(cè)距

    基于STM32F103C8T6(HAL庫(kù))的HC-SR501紅外人體傳感及HC-SR04超聲波測(cè)距

    一、基于STM32F103C8T6最小系統(tǒng)板和STM32CubeMX實(shí)現(xiàn)LED燈循環(huán)閃爍 二、基于STM32F103C8T6和STM32CubeMX實(shí)現(xiàn)UART串口通信數(shù)據(jù)收發(fā) 三、實(shí)戰(zhàn)小例程 基于STM32F103C8T6最小系統(tǒng)板和STM32CubeMX驅(qū)動(dòng)WS2812B光立方 四、基于STM32F103C8T6最小系統(tǒng)板HAL庫(kù)CubeMX驅(qū)動(dòng)HC-SR501紅外人體傳感模塊 五、基于STM32F103C8

    2023年04月17日
    瀏覽(84)
  • STM32系列(HAL庫(kù))——F103C8T6通過(guò)HC-SR04超聲波模塊實(shí)現(xiàn)測(cè)距

    STM32系列(HAL庫(kù))——F103C8T6通過(guò)HC-SR04超聲波模塊實(shí)現(xiàn)測(cè)距

    (1)編程平臺(tái):Keil5 (2)CubeMX (3)XCOM(串口調(diào)試助手) (1)某寶買(mǎi)的超聲波模塊 ? (2)F1的板子,本例使用經(jīng)典F103C8T6 (3)ST-link?下載器 (4)USB-TTL模塊 (5)杜邦線(xiàn)若干 (1)模塊簡(jiǎn)介: ????????超聲波是振動(dòng)頻率高于20kHz的機(jī)械波。它具有頻率高、波長(zhǎng)短、繞射現(xiàn)象小、方向性好、能夠成為射

    2024年02月02日
    瀏覽(21)
  • 基于STM32F103ZET6的(單/三)路HC-SR04超聲波測(cè)距+TFTLCD實(shí)時(shí)顯示+距離報(bào)警

    基于STM32F103ZET6的(單/三)路HC-SR04超聲波測(cè)距+TFTLCD實(shí)時(shí)顯示+距離報(bào)警

    一、成果圖 說(shuō)明:本程序的源碼地址: https://github.com/Lfy-YF/Campus-Project ?????????? CSDN下載連接:https://download.csdn.net/download/weixin_58849239/87829470 源碼包含四個(gè)版本,涉及單路測(cè)距、三路測(cè)距、增加外部中斷(用來(lái)版本記錄的~) 運(yùn)行效果: 本程序?qū)崿F(xiàn)脫機(jī)測(cè)距,共左中右

    2024年02月11日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包