欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
自己做的STM32課程設計 超聲波測距用TFT顯示 并語音播報 簡單程序
[打印本頁]
作者:
尤曉權
時間:
2018-3-14 14:30
標題:
自己做的STM32課程設計 超聲波測距用TFT顯示 并語音播報 簡單程序
簡單程序尚有不足請指教
單片機源程序如下:
#include "delay.h"
#include "sys.h"
#include "stm32f10x.h"
#include "RTC_Time.h"
#include <stdio.h>
#include "SPI_TFT.h"
#include "Image.h"
#include "timer.h"
#include "exti.h"
#include "usart.h"
#define uchar unsigned char
#define uint unsigned int
#define BUFLEN 50
#define BUFLEN2 50
#define BUFLEN2 50
#define HEADLEN 5
#define LEN_OFFSET 2
extern u16 backing_up,distance_measurement;
u8 flag_m1=0,flag_m2; //清屏標志位
//unsigned int Color = YELLOW; // 前景顏色
//unsigned int Color_BK = BLUE; // 背景顏色
extern int shifenwei,baifenwei,gewei,shiwei,baiwei;
extern u8 mode_number;
extern int number,man;
extern u16 key_flag,show_flag_2;
extern float pinjun;
extern u16 b,a,show_flag_1,flag_measure,flag_over;
extern int shifenwei,baifenwei,gewei,shiwei,baiwei;
uchar head[HEADLEN] = {0xfd,0x00,0x00,0x01,0x01};
uchar speed[HEADLEN] = {0x5B,0x74,0x30,0x5D,0xB8};
uchar text[BUFLEN] = {"距離目標 厘米"};
uchar text2[BUFLEN] = {"距離過近"};
uchar text3[BUFLEN] = {"超出檢測范圍"};
uchar sound[6] = {0x5B,0x76,0x31,0x30,0x5D,0x84};
void Speech(uchar *buf, uchar len);
int main(void)
{
SystemInit();
NVIC_Configuration();
delay_init();
uart_init(9600);
InitLcd();
TIM3_Int_Init(39999,72); //測距最遠距離2m 此時計數器溢出 計數器每走一步1us 記滿40ms
EXTIX_Init();
LCD_clear(BLACK);
Color_BK = BLACK;
start_show();
while(1)
{
mode_chose();
if(mode_number%2==1)
{ flag_m1++;
if(flag_m1==1)LCD_clear(BLACK);
else{ Reversing();
man++;
GPIO_SetBits(GPIOB,GPIO_Pin_0);
delay_us(20);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_ms(100);
}
if(flag_over==1) //檢測一次結束
{
number++;
flag_over=0;
if(number>4)
{
number=0;
show_flag_2=1;
}
}
if(show_flag_2==1) //測距顯示
{
if(show_flag_1==1)
{
show_flag_1=0;
juli_date_show(); //數據顯示函數
show_flag_2=0;
}
}
}
if(mode_number%2==0)
{ flag_m1=0;
if(flag_measure==1)
{ man++;
flag_m2++;
if( flag_m2==1) LCD_clear(BLACK);
else{
ultrasonic_ranging_show();
GPIO_SetBits(GPIOB,GPIO_Pin_0);
delay_us(20);
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
delay_ms(100);
flag_measure=0;
}
}
if(flag_over==1) //檢測一次結束
{
number++;
flag_measure=1;
flag_over=0;
if(number>4)
{
number=0;
flag_measure=0;
show_flag_2=1;
}
}
if(show_flag_2==1) //測距顯示
{
if(show_flag_1==1)
{
show_flag_1=0;
juli_date_show(); //數據顯示函數
if(pinjun<3) Speech(text2,25);
if(pinjun>200) Speech(text3,25);
if(pinjun>3 && pinjun<200)
{
sprintf(text + 9,"%5.2f",pinjun);
Speech(text,25);
}
delay_ms(20);
show_flag_2=0;
flag_m1=0;
}
}
}
}
}
/*****************************************************************
* 名 稱: Speech()
* 功 能: 語音播報陳程序
* 入口參數: 無
* 出口參數: 無
*****************************************************************/
void Speech(uchar *buf, uchar len)
{
uchar i = 0;
uchar xor = 0x00;
head[LEN_OFFSET] = len+ 3;
for(i = 0; i < HEADLEN; i++)
{
xor ^= head[i];
USART_SendData(USART1, head[i]);//UART_Trans(head[i]);
delay_ms(2);
}
for(i = 0; i < len; i++)
{
xor ^= buf[i];
USART_SendData(USART1, buf[i]);//UART_Trans(buf[i]);
delay_ms(2);
}
USART_SendData(USART1, xor);//UART_Trans(xor);
}
復制代碼
所有資料51hei提供下載:
TFT 。铮欤澹 2.rar
(330.25 KB, 下載次數: 78)
2018-3-15 02:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
songyuan
時間:
2018-6-14 11:49
你好,想學習一下語音播報
作者:
bibibib
時間:
2018-12-12 15:13
請問有仿真嗎?
作者:
尤曉權
時間:
2019-1-24 15:25
songyuan 發表于 2018-6-14 11:49
你好,想學習一下語音播報
我是直接用 語音合成芯片做的
作者:
灰泰郎
時間:
2019-4-19 19:30
學習學習
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1