1、DMA_InitTypeDef DMA_InitStructure;vu16 ADC_ConvertedValue;ErrorStatus HSEStartUpStatus; /* Private function prototypes -*/void RCC_Configuration(void);void GPIO_Configuration(void);void NVIC_Configuration(void);void SysTick_Configuration(void);void USART_Configuration1(void);void SetupClock (void);i
2、nt fputc(int ch, FILE *f);/* Private functions -*/* Function Name : main Main program* Input : None* Output :* Return :*/#define LED1ON GPIO_SetBits(GPIOF,GPIO_Pin_0) #define LED1OFF GPIO_ResetBits(GPIOF,GPIO_Pin_0) /片选cs #define LED2ON GPIO_SetBits(GPIOF,GPIO_Pin_1) #define LED2OFF GPIO_ResetBits(G
3、PIOF,GPIO_Pin_1)/复位rest #define LED3ON GPIO_SetBits(GPIOF,GPIO_Pin_2) #define LED3OFF GPIO_ResetBits(GPIOF,GPIO_Pin_2)/数据sdata #define LED4ON GPIO_SetBits(GPIOF,GPIO_Pin_3) #define LED4OFF GPIO_ResetBits(GPIOF,GPIO_Pin_3)/时钟sclkunsigned char Ver=A; /驱动版本,默认为A版本,一共4个版本void delayms(unsigned int ii)/1m
4、s延时函数 unsigned int i,x; for (x=0;xii;x+) for (i=0;i100;i+); void send(unsigned char value, unsigned char cd) /写8位数据 unsigned char i,dt; LED1OFF; LED4OFF; if(cd = 0) LED3OFF; else LED3ON; LED4ON; dt=value; for(i=0;8;i+) LED4OFF; if(dt&0x80) LED3ON; else LED3OFF; dt=dt1; LED4ON; LED1ON;/cs=1;void read
5、data() /读数据 unsigned char i,j; unsigned char ch6; send(0x09, 0); / 读数据 /cs=0;/sclk=0;6; chi=0; for (j=0;jj+) LED4ON;/sclk=1; if (!(GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_2)/sdata=0) chi=chi|(1(7-j); LED4OFF; switch(ch0) case 255: Ver= break; case 127:B case 0: if(ch1+ch2+ch3=0) Ver=D elseCvoid LCD_In
6、itialize() /LCD初始化 unsigned char i; LED2ON;/rest=1;/sdata=0; LED2OFF;/rest=0; delayms(50); LED2ON; send(0x00, 0); / NOP delayms(5); send(0x01, 0); / LCD Software Reset send(0xC6, 0); / Initial Escape send(0xB9, 0); / Refresh set send(0x00, 1); readdata(); /读出数据 send(0xB5, 0); / Gamma Curve Set send(
7、0x01, 1); send(0xbd, 0); /common driver output select/很重要的 if(Ver=) send(0x04, 1); else send(0x00, 1); send(0xBE, 0); / Power Control send(0x03, 1); send(0x11, 0); / Sleep out send(0xBA, 0); send(0x7F, 1); send(0x36, 0); / 扫描方式 if (Ver= send(0x00|0x08,1); /RGB send(0x00,1); send(0xB7, 0); / Temperat
8、ure gradient set i14; i+) send(0, 1); send(0x29, 0); /display ON send(0x03, 0); / Booster Voltage ON delayms(20); / Booster Voltage stabilisieren lassen send(0x20, 0); /display inversion OFF send(0x25, 0); / Write contrast switch(Ver) /对比度设置 case : send(70, 1); /对比度设置 send(67, 1); case /send(74, 1);
9、 send(66, 1); / send(64, 1); /对比度设置 send(39, 1);/*/颜色模式设置:color=1为4096色模式/ :color=0为256色模式void LCD_ColorSet(unsigned char Color)if (Color=1) send(0x3a, 0); /interface pixel format /0x03 为4096色,0x02为256色 else send(0x02, 1); send(0x2d, 0); /调色板设置|Ver= /red send(0x00, 1); send(0x02, 1); send(0x03, 1);
10、send(0x04, 1); send(0x05, 1); send(0x06, 1); send(0x08, 1); send(0x0f, 1); /green /blue send(0x00, 1); send(0x02, 1); send(0x03, 1); send(0x04, 1); send(0x05, 1); send(0x06, 1); send(0x08, 1); send(0x0f, 1);void addset(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2) /坐标设置 4个参数依次
11、为开始X,开始Y,结束x,结束Y send(0x2a,0 );/column address set send(x1,1 ); send(x2,1 ); send(0x2B,0 );/page address set send(y1,1 ); send(y2,1 ); send(0x2C,0 );/memory write/清屏:color=1为4096色模式清屏color=0为256色模式清屏void LCD_Clear(unsigned int value,unsigned char Color) unsigned char x, y; addset(0,0,97,66); if (Col
12、or=1) for(y = 0; y 67; y +) for(x = 0; x 4,1); send(value&0x0f)8),1); send(value,1); 98; x +) /在指定位置显示一个字符(8*12大小)/dcolor为内容颜色,gbcolor为背静颜色void showdian(unsigned char x,unsigned char y,unsigned char dcolor,unsigned char bgcolor) addset(x,y,x+1,y+1); /设置区域 send(dcolor,1); send(bgcolor,1);int main(voi
13、d)int i,j;#ifdef DEBUG debug();#endif /* System clocks configuration -*/ RCC_Configuration(); SysTick_Configuration(); /* NVIC configuration -*/ NVIC_Configuration(); /* GPIO configuration -*/ GPIO_Configuration(); /* Configure the USART1 */ USART_Configuration1(); /printf(rn USART1 print AD_value -
14、 rn); /* DMA channel1 configuration -*/ DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = 1; DMA_InitStructure.D
15、MA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_I
16、nitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); /* Enable DMA channel1 */ DMA_Cmd(DMA1_Channel1, ENABLE); /* ADC1 configuration -*/ ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanCo
17、nvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 regular channel13 configu
18、ration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 1, ADC_SampleTime_55Cycles5); /* Enable ADC1 DMA */ ADC_DMACmd(ADC1, ENABLE); /* Enable ADC1 */ ADC_Cmd(ADC1, ENABLE); /* Enable ADC1 reset calibaration register */ ADC_ResetCalibration(ADC1); /* Check the end of ADC1 reset calibration registe
19、r */ while(ADC_GetResetCalibrationStatus(ADC1); /* Start ADC1 calibaration */ ADC_StartCalibration(ADC1); /* Check the end of ADC1 calibration */ while(ADC_GetCalibrationStatus(ADC1); /* Start ADC1 Software Conversion */ ADC_SoftwareStartConvCmd(ADC1, ENABLE); LCD_Initialize() ; LCD_ColorSet(0); /0为256色模式,1为4096色模式 LCD_Clear(255,0); /清屏 addset(0,0,103,81); /设置起止坐标,4个参数依次为开始X,开始Y,结束x,结束Ywhile(1)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1