OpenEdv-开源电子网

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

12864并行显示超声波测量距离没有显示

[复制链接]

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-8-20
在线时间
26 小时
发表于 2018-10-14 11:52:14 | 显示全部楼层 |阅读模式
10金钱
注释12864显示的话,串口助手会显示测量的距离,但是 取消注释后再烧录串口就不显示数据了
不知道是什么问题,求大佬解答一下

12864显示超声波.rar

2.74 MB, 下载次数: 72

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-10-15 02:34:01 | 显示全部楼层
回复

使用道具 举报

0

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2018-10-6
在线时间
3 小时
发表于 2018-10-15 08:13:55 | 显示全部楼层
求大佬讲解,感谢分享
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-10-15 08:39:52 | 显示全部楼层
楼主你的主循环中所有的函数跟踪下去都没有调用串口发送部分的功能啊

[mw_shl_code=c,true]        while(1)
        {            
                val=TIM_GetCounter(TIM3)*340/200.0;
                Wave_SRD_Strat();       
        //LED1=!LED1;
        delay_ms(2000);
//                lcd_clear();
                lcd_locate(10,20);
                       
                DisFloat(val);
               
        }[/mw_shl_code]
十六进制带我飞。
回复

使用道具 举报

4

主题

163

帖子

0

精华

高级会员

Rank: 4

积分
955
金钱
955
注册时间
2018-9-7
在线时间
115 小时
发表于 2018-10-15 09:06:51 | 显示全部楼层
瞎转转
回复

使用道具 举报

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-8-20
在线时间
26 小时
 楼主| 发表于 2018-10-15 18:47:51 | 显示全部楼层
DreamWaterPro 发表于 2018-10-15 08:39
楼主你的主循环中所有的函数跟踪下去都没有调用串口发送部分的功能啊

[mw_shl_code=c,true]        while(1)

void USART1_IRQHandler(void)               
{
u8 Res;
#if SYSTEM_SUPPORT_OS   
OSIntEnter();   
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  
  {
  Res =USART_ReceiveData(USART1);
  
  if((USART_RX_STA&0x8000)==0)//
   {
   if(USART_RX_STA&0x4000)
    {
    if(Res!=0x0a)USART_RX_STA=0;
    else USART_RX_STA|=0x8000;
    }
   else //»¹Ã»ÊÕµ½0X0D
    {
    if(Res==0x0d)USART_RX_STA|=0x4000;
    else
     {
     USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
     USART_RX_STA++;
     if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;
     }   
    }
   }      
     }
#if SYSTEM_SUPPORT_OS  
OSIntExit();              
#endif
}
#endif
在串口中断服务程序啊

回复

使用道具 举报

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-8-20
在线时间
26 小时
 楼主| 发表于 2018-10-15 19:09:18 | 显示全部楼层
DreamWaterPro 发表于 2018-10-15 08:39
楼主你的主循环中所有的函数跟踪下去都没有调用串口发送部分的功能啊

[mw_shl_code=c,true]        while(1)

程序烧录进去串口助手就像是卡住了一样,重复按复位键才会显示一条
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-10-16 11:12:45 | 显示全部楼层
红裤衩蓝 发表于 2018-10-15 18:47
void USART1_IRQHandler(void)               
{
u8 Res;

你的串口中断服务程序只是进行了接收的处理啊,再说一般地通过串口给电脑发送数据,也不需要使用发送中断啊?
不明白楼主串口发送信息的程序在哪里?
十六进制带我飞。
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-10-16 11:14:05 | 显示全部楼层
红裤衩蓝 发表于 2018-10-15 19:09
程序烧录进去串口助手就像是卡住了一样,重复按复位键才会显示一条

“重复按复位键才会显示一条”
额,显示一条什么信息呢?
十六进制带我飞。
回复

使用道具 举报

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-8-20
在线时间
26 小时
 楼主| 发表于 2018-10-16 18:19:38 | 显示全部楼层
DreamWaterPro 发表于 2018-10-16 11:14
“重复按复位键才会显示一条”
额,显示一条什么信息呢?

显示一条测量的距离值
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2018-10-17 10:44:51 | 显示全部楼层
红裤衩蓝 发表于 2018-10-16 18:19
显示一条测量的距离值

请问在串口上显示“一条测量的距离值”的代码在哪里呢
十六进制带我飞。
回复

使用道具 举报

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-8-20
在线时间
26 小时
 楼主| 发表于 2018-10-18 18:01:45 | 显示全部楼层
DreamWaterPro 发表于 2018-10-17 10:44
请问在串口上显示“一条测量的距离值”的代码在哪里呢

[mw_shl_code=applescript,true]if(EXTI_GetITStatus(EXTI_Line6)!=RESET)
        {
                TIM_SetCounter(TIM3,0);
                TIM_Cmd(TIM3,ENABLE);
               
                while(GPIO_ReadInputDataBit(GPIOE,Echo));  //µÈ´ýµÍµçƽ
               
                TIM_Cmd(TIM3,DISABLE);
               
                Distance=TIM_GetCounter(TIM3)*340/200.0;
               
                if(Distance>0)
                {
                        printf("Distance:%f cm\r\n",Distance);
                }
                       
                EXTI_ClearITPendingBit(EXTI_Line6);
        }
}

void Wave_SRD_Strat(void)
{
        GPIO_SetBits(GPIOE,Trig);         
delay_us(20);            
        GPIO_ResetBits(GPIOE,Trig);
        [/mw_shl_code]
回复

使用道具 举报

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-8-20
在线时间
26 小时
 楼主| 发表于 2018-10-18 18:02:06 | 显示全部楼层
DreamWaterPro 发表于 2018-10-17 10:44
请问在串口上显示“一条测量的距离值”的代码在哪里呢

[mw_shl_code=applescript,true]if(EXTI_GetITStatus(EXTI_Line6)!=RESET)
        {
                TIM_SetCounter(TIM3,0);
                TIM_Cmd(TIM3,ENABLE);
               
                while(GPIO_ReadInputDataBit(GPIOE,Echo));  //µÈ´ýµÍµçƽ
               
                TIM_Cmd(TIM3,DISABLE);
               
                Distance=TIM_GetCounter(TIM3)*340/200.0;
               
                if(Distance>0)
                {
                        printf("Distance:%f cm\r\n",Distance);
                }
                       
                EXTI_ClearITPendingBit(EXTI_Line6);
        }
}

void Wave_SRD_Strat(void)
{
        GPIO_SetBits(GPIOE,Trig);         
delay_us(20);            
        GPIO_ResetBits(GPIOE,Trig);
        [/mw_shl_code]
回复

使用道具 举报

6

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2018-8-20
在线时间
26 小时
 楼主| 发表于 2018-10-18 18:31:32 | 显示全部楼层
DreamWaterPro 发表于 2018-10-17 10:44
请问在串口上显示“一条测量的距离值”的代码在哪里呢

printf("Distance:%f cm\r\n",Distance);
看到了吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 22:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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