资料包含STM32F103驱动TSL1401线性CCD模块代码,上位机,指导手册和拉普兰德及逐飞红孩儿CCD资料。本项目使用单片机为正点原子MINI板,CCD为逐飞科技红孩儿CCD,上位机为拉普兰德线性CCD调试助手。实际任意一款STM32F103单片机均可使用本代码驱动TSL1401线性CCD模块。由于逐飞科技红孩儿TSL1401线性CCD模块已停产,可以选用龙邱科技或者平衡小车之家的线性TSL1401线性C
单片机源程序如下:- #include "timer.h"
- #include "adc.h"
- #include "led.h"
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "ccd.h"
- #include "rcc.h"
- #include "lcd.h"
- #include "lapland.h"
- //该代码能实现STM32驱动CCD采集灰度值,
- //并通过串口助手查看灰度值,或通过上位机
- //查看CCD采集灰度信息
- //对应引脚 SI=PC.5 CLK=PC.4 AO=PA.2
- u8 IntegrationTime=10;
- u8 TIME1flag_1ms=0;
- u8 TIME1flag_20ms=0;
- int main(void)
- {
- u8 Pixel[128];
- volatile u8 i,j;
- u8 *pixel_pt;
- SystemInit();
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
- RCC_Configuration();
- uart_init(115200); //串口初始化为115200
- Adc_Init(); //ADC初始化
- LED_Init(); //初始化与LED连接的硬件接口
- // LCD_Init();
- GPIO_CCD();
- TIM3_Int_Init(2,7200);
-
- //CCD采样数据缓冲区初始化
- pixel_pt=Pixel;
- for(i=0;i<128;i++)
- {
- *pixel_pt++=0;
- }
- /*
- while(1)//CCD采样并发送到串口助手
- {
- if(TIME1flag_1ms==1)
- {
- TIME1flag_1ms=0;
- }
- if(TIME1flag_20ms==1)
- {
- TIME1flag_20ms=0;
- ImageCapture(Pixel);//CCD采样
- CalculateIntegrationTime(Pixel); //计算曝光时间
- for(j=0;j<128;j+=8)//发送数据到串口助手,每隔8个发送1个灰度值,共发送128/8=16个
- {
- printf("%5d",Pixel[j]);
- }
- printf(" \n");
- }
- }
- */
- while(1)//CCD采样并发送到上位机
- {
- if(TIME1flag_1ms==1)
- {
- TIME1flag_1ms=0;
- }
- if(TIME1flag_20ms==1)
- {
- TIME1flag_20ms=0;
- ImageCapture(Pixel);//CCD采样
- CalculateIntegrationTime(Pixel); //计算曝光时间
- }
- CCD_send(Pixel);//发送数据到拉普兰德CCD调试助手
- }
-
- }
复制代码
全部资料51hei下载地址:
STM32F103驱动TSL1401线性CCD模块.7z
(6.25 MB, 下载次数: 341)
|