piaoran1314 发表于 2018-5-12 14:36:08

全功能智能车之CCD液晶显示定时器触发ADC 触发DMA传输(CCD补...

该篇文章是继承于CCD终结篇的补充,就是做一件事,就是把原来发送给串口的图像数据放到液晶上显示,其他没有任何的改变
主函数如下:
int main(void){                u16 i,cnt;Stm32_Clock_Init(9);        //系统时钟设置        uart_init(72,115200);               //串口初始化为115200        delay_init(72);                          //延时初始化         LED_Init();                                  //初始化与LED连接的硬件接口         LCD_Init();                                   //初始化LCD        usmart_dev.init(72);        //初始化USMART                                        CCD_init();          //初始化CCD        //初始化数据for(i=0; i<CCD_LENGTH; i++) {    Pixel=0;}        POINT_COLOR=RED;//设置字体为红色         LCD_ShowString(20,10,200,16,16,"Maid:piaoran QQ:384710930");                        LCD_ShowString(20,30,200,16,16,"x:0000 n:0000 a:0000 e:0000");          //ccd_max ccd_min exp_tim ccd_avg        //VerifyExposure();        while(1)        {                ImageCapture(Pixel);                while(!ccd_finish);                if(++cnt >= 5) {                        cnt = 0;                        //SendImageData(Pixel);                        LcdShowData(Pixel);                }                //LCD_Put32REG(0,130,"DMA->CNDTR:",DMA1_Channel1->CNDTR);                 LED0=!LED0;                delay_ms(500);                }}
其中的把数据放到液晶上的函数如下:/**************************************************************************函数名称:LcdShowData*功能说明:把数据结果显示到液晶上*参数说明:*函数返回:无*修改时间:2015-11-28×作者:piaoranQQ:384710930*备    注:LcdShowData(Pixel);*************************************************************************/void LcdShowData(unsigned short * ImageData) {          unsigned char i,temp;                LCD_Fill(0,122,239,250,(u16)~BROWN);          //0x00代表最暗,0xfe代表最亮 而采集回来的是12位的ADC值                  for(i=0; i<CCD_LENGTH; i++) {                        if(i<4 || i>124){                                ImageData++;                                continue;                        }                        temp=(u8)(*ImageData>>5);                        POINT_COLOR=BROWN;                        LCD_DrawPoint(2*(i-4),250-temp-1);                        LCD_DrawPoint(2*(i-4),250-temp+1);                        LCD_DrawPoint(2*(i-4),250-temp);                        LCD_DrawPoint(2*(i-4)+1,250-temp-1);                        LCD_DrawPoint(2*(i-4)+1,250-temp+1);                        LCD_DrawPoint(2*(i-4)+1,250-temp);                        ImageData++;    }}
好了,代码到此,现在来看看实验图片效果:http://img.blog.csdn.net/20151130131903246?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Centerhttp://img.blog.csdn.net/20151130131914025?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Centerhttp://img.blog.csdn.net/20151130131922538?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center



源代码如下:
http://download.csdn.net/detail/chengdong1314/9311897


页: [1]
查看完整版本: 全功能智能车之CCD液晶显示定时器触发ADC 触发DMA传输(CCD补...