OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5615|回复: 3

STM32驱动超声波 距离显示到12864液晶上。

[复制链接]

15

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-4-17
在线时间
4 小时
发表于 2014-5-12 09:29:12 | 显示全部楼层 |阅读模式
5金钱

不知道为什么数据值总是显示38, 不会变化,不知道哪里出问题了。

#include <stm32f10x_lib.h>
#include "usart.h"
#include "12864.h"
#include "delay.h"
#include "sys.h"
#include "led.h"
#include "timer.h"

u16 TIM,S;
u8 bai,shi,ge;

int main(void)

Stm32_Clock_Init(9);//系统时钟设置
delay_init(72);  //延时初始化
uart_init(72,9600); //串口1初始化 
IO_Init();
LED_Init();
init();
//timerx_Init(4999,7199);

while(1)
{
timerx_Init(4999,7199);
TRIG_TX=1;
delay_us(25);
TRIG_TX=0;
TIM3->CNT=0;
TIM3->CR1|=0x01;
while(ECHO_RX);
TIM=TIM3->CNT;
TIM3->CR1|=~0x01;
S=TIM;

bai=S/100%10;
shi=S/10;
ge =S%10;
write_com(0x83);
write_data(0x30+bai);
write_data(0x30+shi);
write_data(0x30+ge);
write_data(0x60+11);
write_data(0x60+13);
write_data(0x20+15);
write_data(0x60+8);
delay_ms(70);
}
}


#include "timer.h"
#include "led.h"
#include "12864.h"
#include "delay.h"


void timerx_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1; //使能时钟3
TIM3->ARR=arr;
TIM3->SC=psc;
TIM3->DIER|=1<<0;
TIM3->DIER|=1<<6;

}



#include <stm32f10x_map.h>
#include <stm32f10x_nvic.h>   
#include "led.h"
 

void LED_Init(void)
{
RCC->APB2ENR|=1<<2;    //使能PORTA时钟    
    
GPIOA->CRH&=0XF00FFFFF;
GPIOA->CRH|=0X08300000;  //A13为输出 A14为输入
GPIOA->ODR|=1<<14;
}



#ifndef __LED_H
#define __LED_H  
#include "sys.h"

#define LED0 PAout(8)// PD2

#define TRIG_TX PAout(13)
#define ECHO_RX PAin(14)

void LED_Init(void);//初始化    
#endif














最佳答案

查看完整内容[请看2#楼]

我已经找到问题了,我忽略了 回响高电平时间,加上这个就好了while(!ECHO_RX);
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2014-4-17
在线时间
4 小时
 楼主| 发表于 2014-5-12 09:29:13 | 显示全部楼层
我已经找到问题了,我忽略了 回响高电平时间,加上这个就好了while(!ECHO_RX);
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-12 12:36:55 | 显示全部楼层
你代个数进去算一下看下你这个算法对不对,用155来算下看下你的bai、shi、ge的值看下是多少

bai=S/100%10; 
shi=S/10;
ge =S%10;
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

9

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2014-3-15
在线时间
0 小时
发表于 2014-5-13 20:27:10 | 显示全部楼层
回复【3楼】nba501287927:
---------------------------------
你能把你的这个程序发给我参考参考吗?QQ1106256891
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-8 03:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表