|
该篇文章是继承于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× 作者:piaoran QQ: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://download.csdn.net/detail/chengdong1314/9311897
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|