智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2768|回复: 9
打印 上一主题 下一主题

用的是拉普兰德的底层库 但是上位机接收不到数据

[复制链接]

54

主题

286

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2172
QQ
威望
1119
贡献
505
兑换币
476
注册时间
2012-8-28
在线时间
274 小时
跳转到指定楼层
1#
发表于 2013-1-19 22:21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是拉普兰德的底层库 但是上位机接收不到数据,,求大神指点

#include "common.h"
#include "HAL_ADC.h"
#include "HAL_FTM.h"
#include "HAL_GPIO.h"
#include "HAL_UART.h"
unsigned char image_buf1[48][100];
unsigned char image_buf2[48][100];
unsigned char image_trans[48][100];
unsigned int image_row=0;
unsigned int image_column=0;
uint16 ADresult;
void nop()
{}
void waitimage(int num)    //行消隐过度;  
{
     unsigned int i,j;
    for(i=0;i<num;i++)
       for(j=0;j<33;j++);
}
/******************初始化**************************************/
void systeminit()
{
  LPLD_GPIO_Init(PTB, 10, DIR_INPUT, INPUT_PDOWN, IRQC_RI );//行中断,PTB10
  LPLD_GPIO_Init(PTC, 10, DIR_INPUT, INPUT_PDOWN, IRQC_RI );//场中断,PTC10
  LPLD_ADC_Init(ADC0, MODE_16, CONV_SING);//ad转换初始化,pta7,16位精度
  LPLD_UART_Init(UART1, 115200);      //串口初始化,TxdTC4  Rxd:PTC3

}
/******************行中断触发采样************************/
void image_collect()
{
  int count=100;
   waitimage(2);   
   if(image_row<48)
   {
      for(count;count>0;count--)
      {
          ADresult= LPLD_ADC_SE_Get(ADC0, 10);   
          image_buf1[image_row][image_column++]=ADresult;
      }
   image_column=0;     
   image_row++;  
   waitimage(2);
   }
   else
     nop();

}
/***********************对图像进行二值化处理*************************/
void imagetrans(unsigned char start,unsigned char end,unsigned char contrst)
{
      unsigned  char i,j;
      unsigned  char a,b,c;
      unsigned  char num,temp,max,min;
      unsigned  char max_temp,min_temp;
      unsigned  char Max_num[10],Min_num[10];
      unsigned  char hang_end,hang_start;
      unsigned  char total_max,total_min;
      unsigned  char contr;

      total_max=0;
      total_min=0;

      contr=contrst;

      hang_end=end;
      hang_start=start;

      for(i=hang_start;i<hang_end;i++)               
      {
        for(j=0;j<image_column;j=j+3)                 
          {
              num=j;
              a=image_buf1[15][num];
              num=num+1;
              b=image_buf1[15][num];
              num=num+2;
              c=image_buf1[15][num];
              min_temp=(a+b+c)/3;
              if(min>max)
              {
                  temp=min_temp;
                  min_temp=max_temp;
                  max_temp=temp;
              }               
          }
        Max_num[i]=max_temp;
        Min_num[i]=min_temp;         
      }
      for(i=hang_start;i<hang_end;i++)               
      {
         total_max=total_max+Max_num[i];
         total_min=total_min+Min_num[i];
      }
  /***********************处理完毕****************************/
      max=total_max/(hang_end-hang_start)*(1-contr/100) ;      // white  
      min=total_min/(hang_end-hang_start)*(1+contr/100)  ;     // black


  /********************将处理完毕的图像保存************************/   
      for(i=0;i<image_row;i++)           //行
       {
          for(j=0; j<image_column; j++)   //列
           {
              if(image_buf1[i][j]>=max)  image_buf2[i][j]=1;
              if(image_buf1[i][j]<=min)  image_buf2[i][j]=0;
           }

       }  
}


/************将得到的像素数据通过串口发送至上位机*************************/
void image_uart_send()
{
  image_row=0;
  image_column=0;
  for(image_row;image_row<48;image_row++)
    for(image_column;image_column<100;image_column++)
      LPLD_UART_PutChar(UART1,image_buf2[image_row][image_column]);

}
void image_process()
{
  DisableInterrupts;
  waitimage(1);
  image_row=0;
  image_column=0;
  imagetrans(4,8,10);
  image_uart_send();
  EnableInterrupts;

}
void main (void)
{
  DisableInterrupts;
  systeminit();
  while(1)
  {
     EnableInterrupts;
     LPLD_GPIO_SetIsr (PTB, image_collect);
     LPLD_GPIO_SetIsr (PTC, image_process);
     while(1);

  }

}

59

主题

1029

帖子

0

精华

版主

有什么需帮助的?

Rank: 9Rank: 9Rank: 9

积分
15115

热心会员奖章论坛元老奖章优秀会员奖章在线王奖章

威望
11048
贡献
1407
兑换币
1728
注册时间
2011-12-18
在线时间
1330 小时
2#
发表于 2013-1-19 22:40:24 | 只看该作者
你可以分别排查下问题:
1、先单独测试UART1串口显示,注意引脚不要连错
2、在线调试查看数组是否有数据
回复 支持 反对

使用道具 举报

16

主题

1229

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7678

优秀会员奖章论坛元老奖章活跃会员奖章在线王奖章

QQ
威望
3484
贡献
2020
兑换币
1673
注册时间
2011-9-8
在线时间
1087 小时
3#
发表于 2013-1-20 08:59:17 | 只看该作者
无语
回复 支持 反对

使用道具 举报

0

主题

28

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1063
威望
520
贡献
265
兑换币
196
注册时间
2012-6-15
在线时间
139 小时
4#
发表于 2013-1-20 10:35:46 | 只看该作者
LPLD的串口变得不好用了  
回复 支持 反对

使用道具 举报

54

主题

286

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2172
QQ
威望
1119
贡献
505
兑换币
476
注册时间
2012-8-28
在线时间
274 小时
5#
 楼主| 发表于 2013-1-20 10:51:45 | 只看该作者
谢谢 我在研究研究
回复 支持 反对

使用道具 举报

59

主题

1029

帖子

0

精华

版主

有什么需帮助的?

Rank: 9Rank: 9Rank: 9

积分
15115

热心会员奖章论坛元老奖章优秀会员奖章在线王奖章

威望
11048
贡献
1407
兑换币
1728
注册时间
2011-12-18
在线时间
1330 小时
6#
发表于 2013-1-20 11:50:15 | 只看该作者
ettpiao 发表于 2013-1-20 10:35
LPLD的串口变得不好用了

这话说的库中的串口代码一直没变过,一直用着很好,如果变的不好用请你先查看你的硬件连接、软件初始化、中断调用等方面。
回复 支持 反对

使用道具 举报

9

主题

82

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1789
威望
678
贡献
379
兑换币
179
注册时间
2012-8-27
在线时间
366 小时
毕业学校
重庆交通大学
7#
发表于 2013-1-20 13:21:32 | 只看该作者
用的好好的哦,LPLD的
回复 支持 反对

使用道具 举报

3

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
648
威望
276
贡献
222
兑换币
182
注册时间
2012-12-25
在线时间
75 小时
8#
发表于 2013-1-23 14:47:52 | 只看该作者
初年 发表于 2013-1-20 13:21
用的好好的哦,LPLD的

拉普兰德的DMA库你用了吗?能行吗?我的程序怎么始终不对啊
回复 支持 反对

使用道具 举报

3

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
648
威望
276
贡献
222
兑换币
182
注册时间
2012-12-25
在线时间
75 小时
9#
发表于 2013-1-23 14:49:42 | 只看该作者
洋葱圈 发表于 2013-1-20 11:50
这话说的库中的串口代码一直没变过,一直用着很好,如果变的不好用请你先查看你的硬件连接、 ...

能请教你一些关于LPLD的DMA库的问题吗  我搞了2天了  一直没对
回复 支持 反对

使用道具 举报

7

主题

57

帖子

0

精华

高级会员

Rank: 4

积分
725
威望
377
贡献
196
兑换币
227
注册时间
2016-2-27
在线时间
76 小时
毕业学校
南华大学
10#
发表于 2016-4-6 00:15:33 | 只看该作者
请教ccd的问题,能下载,但是串口没有数据
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|亿加合和智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-5-5 11:49 , Processed in 0.065714 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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