新手入门
- 积分
- 12
- 金钱
- 12
- 注册时间
- 2018-10-17
- 在线时间
- 1 小时
|
1金钱
求助,这样连上去不管CCD前面黑白的,LCD没变化。。手里有TSL1401LQ_1401M
其他的都是参考程序里面的,没改过。
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "adc.h"
#include "stdio.h"
#define CCD_CLK PAout(6)// PA3
#define CCD_SI PAout(4)// PA4
void CCD_reader(u16 *p);
void CCD_init(void);
void CCD_display(u16 *p);
void CCD_send(u16 *p);
//ALIENTEK ̽Ë÷ÕßSTM32F407¿ª·¢°å ʵÑé18
//ADCÄ£Êýת»»ÊµÑé-¿âº¯Êý°æ±¾
//¼¼ÊõÖ§³Ö£ºwww.openedv.com
//ÌÔ±¦µêÆÌ£ºhttp://eboard.taobao.com
//¹ãÖÝÊÐÐÇÒíµç×ӿƼ¼ÓÐÏÞ¹«Ë¾
//×÷ÕߣºÕýµãÔ­×Ó @ALIENTEK
int main(void)
{
u16 p[128];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//ÉèÖÃϵͳÖжÏÓÅÏȼ¶·Ö×é2
delay_init(168); //³õʼ»¯ÑÓʱº¯Êý
uart_init(115200); //³õʼ»¯´®¿Ú²¨ÌØÂÊΪ115200
LED_Init(); //³õʼ»¯LED
LCD_Init(); //³õʼ»¯LCD½Ó¿Ú
Adc_Init(); //³õʼ»¯ADC
CCD_init();
POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");
LCD_ShowString(30,70,200,16,16,"ADC TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,"2018/10/17");
POINT_COLOR=BLUE;//ÉèÖÃ×ÖÌåΪÀ¶É«
LCD_ShowString(30,130,200,16,16,"ADC1_CH5_VAL:");
LCD_ShowString(30,150,200,16,16,"ADC1_CH5_VOL:0.000V"); //ÏÈÔڹ̶¨Î»ÖÃÏÔʾСÊýµã
while(1)
{
CCD_reader(p);
CCD_send(p);
CCD_display(p);
LED0=!LED0;
}
}
void CCD_reader(u16 *p)
{
u8 i;
CCD_CLK = 0;
CCD_SI = 1;
delay_us(1);
CCD_CLK = 1;
CCD_SI = 0;
delay_us(1);
for(i=0;i<128;i++)
{
CCD_CLK = 0;
*p++ = Get_Adc(ADC_Channel_0);
CCD_CLK = 1;
delay_us(1);
}
}
void CCD_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOA, ENABLE); //ʹÄÜ A¶Ë¿ÚʱÖÓ
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4; //¶Ë¿ÚÅäÖÃ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_3 | GPIO_Pin_4);
}
void CCD_display(u16 *p)
{
int i;
for(i=127;i>=0;i--)
{
if(p>200)
{
POINT_COLOR=BLUE;
LCD_DrawLine(90+i, 330, 90+i, 350);
}
else
{
POINT_COLOR=RED;
LCD_DrawLine(90+i, 330, 90+i, 350);
}
}
}
void CCD_send(u16 *p)
{ u8 i;
putchar('T');
for(i=0;i<128;i++)
{
putchar(p>>8); //·¢Ë͸߰Ëλ
putchar(p&0x00FF); //·¢Ë͵ͰËλ
}
}
|
|