波形显示文档格式.docx
- 文档编号:17859691
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:21
- 大小:20.06KB
波形显示文档格式.docx
《波形显示文档格式.docx》由会员分享,可在线阅读,更多相关《波形显示文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
DMA_InitTypeDefDMA_InitStructure;
vu16ADC_ConvertedValue;
ErrorStatusHSEStartUpStatus;
/*Privatefunctionprototypes-----------------------------------------------*/
voidRCC_Configuration(void);
voidGPIO_Configuration(void);
voidNVIC_Configuration(void);
voidSysTick_Configuration(void);
voidUSART_Configuration1(void);
voidSetupClock(void);
intfputc(intch,FILE*f);
/*Privatefunctions---------------------------------------------------------*/
*FunctionName:
main
Mainprogram
*Input:
None
*Output:
*Return:
*******************************************************************************/
#defineLED1ONGPIO_SetBits(GPIOF,GPIO_Pin_0)
#defineLED1OFFGPIO_ResetBits(GPIOF,GPIO_Pin_0)//片选cs
#defineLED2ONGPIO_SetBits(GPIOF,GPIO_Pin_1)
#defineLED2OFFGPIO_ResetBits(GPIOF,GPIO_Pin_1)//复位rest
#defineLED3ONGPIO_SetBits(GPIOF,GPIO_Pin_2)
#defineLED3OFFGPIO_ResetBits(GPIOF,GPIO_Pin_2)//数据sdata
#defineLED4ONGPIO_SetBits(GPIOF,GPIO_Pin_3)
#defineLED4OFFGPIO_ResetBits(GPIOF,GPIO_Pin_3)//时钟sclk
unsignedcharVer='
A'
;
//驱动版本,默认为A版本,一共4个版本
voiddelayms(unsignedintii)//1ms延时函数
{
unsignedinti,x;
for(x=0;
x<
ii;
x++)
{
for(i=0;
i<
100;
i++);
}
}
voidsend(unsignedcharvalue,unsignedcharcd)//写8位数据
{
unsignedchari,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=dt<
<
1;
LED4ON;
}
LED1ON;
//cs=1;
voidreaddata()//读数据
unsignedchari,j;
unsignedcharch[6];
send(0x09,0);
//读数据
//cs=0;
//sclk=0;
6;
ch[i]=0;
for(j=0;
j<
j++)
{
LED4ON;
//sclk=1;
if(!
(GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_2)))//sdata==0)
{
ch[i]=ch[i]|(1<
(7-j));
}
LED4OFF;
}
switch(ch[0])
case255:
Ver='
break;
case127:
B'
case0:
if(ch[1]+ch[2]+ch[3]==0)
Ver='
D'
}else
C'
voidLCD_Initialize()//LCD初始化
unsignedchari;
LED2ON;
//rest=1;
//sdata=0;
LED2OFF;
//rest=0;
delayms(50);
LED2ON;
send(0x00,0);
//NOP
delayms(5);
send(0x01,0);
//LCDSoftwareReset
send(0xC6,0);
//InitialEscape
send(0xB9,0);
//Refreshset
send(0x00,1);
readdata();
//读出数据
send(0xB5,0);
//GammaCurveSet
send(0x01,1);
send(0xbd,0);
//commondriveroutputselect//很重要的
if(Ver=='
)
send(0x04,1);
}else
send(0x00,1);
send(0xBE,0);
//PowerControl
send(0x03,1);
send(0x11,0);
//Sleepout
send(0xBA,0);
send(0x7F,1);
send(0x36,0);
//扫描方式
if(Ver=='
send(0x00|0x08,1);
//RGB
send(0x00,1);
send(0xB7,0);
//Temperaturegradientset
i<
14;
i++)
send(0,1);
send(0x29,0);
//displayON
send(0x03,0);
//BoosterVoltageON
delayms(20);
//BoosterVoltagestabilisierenlassen
send(0x20,0);
//displayinversionOFF
send(0x25,0);
//Writecontrast
switch(Ver)//对比度设置
case'
:
send(70,1);
//对比度设置
send(67,1);
case'
//send(74,1);
send(66,1);
//send(64,1);
//对比度设置
send(39,1);
//************************
//颜色模式设置:
color=1为4096色模式
//:
color=0为256色模式
voidLCD_ColorSet(unsignedcharColor)
if(Color==1){
send(0x3a,0);
//interfacepixelformat
//0x03为4096色,0x02为256色
else
send(0x02,1);
send(0x2d,0);
//调色板设置
||Ver=='
//red
send(~0x00,1);
send(~0x02,1);
send(~0x03,1);
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);
voidaddset(unsignedcharx1,unsignedchary1,unsignedcharx2,unsignedchary2)//坐标设置4个参数依次为开始X,开始Y,结束x,结束Y
send(0x2a,0);
//columnaddressset
send(x1,1);
send(x2,1);
send(0x2B,0);
//pageaddressset
send(y1,1);
send(y2,1);
send(0x2C,0);
//memorywrite
//清屏:
color=1为4096色模式清屏
color=0为256色模式清屏
voidLCD_Clear(unsignedintvalue,unsignedcharColor)
unsignedcharx,y;
addset(0,0,97,66);
if(Color==1)
for(y=0;
y<
67;
y++)
for(x=0;
x<
49;
x++)
{send(value>
>
4,1);
send(((value&
0x0f)<
4)|(value>
8),1);
send(value,1);
}
98;
x++)
{
}
}
//在指定位置显示一个字符(8*12大小)
//dcolor为内容颜色,gbcolor为背静颜色
voidshowdian(unsignedcharx,unsignedchary,unsignedchardcolor,unsignedcharbgcolor)
{
addset(x,y,x+1,y+1);
//设置区域
send(dcolor,1);
send(bgcolor,1);
intmain(void)
{inti,j;
#ifdefDEBUG
debug();
#endif
/*Systemclocksconfiguration---------------------------------------------*/
RCC_Configuration();
SysTick_Configuration();
/*NVICconfiguration------------------------------------------------------*/
NVIC_Configuration();
/*GPIOconfiguration------------------------------------------------------*/
GPIO_Configuration();
/*ConfiguretheUSART1*/
USART_Configuration1();
//printf("
\r\nUSART1printAD_value--------------------------\r\n"
);
/*DMAchannel1configuration----------------------------------------------*/
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.DMA_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_InitStructure.DMA_Priority=DMA_Priority_High;
DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;
DMA_Init(DMA1_Channel1,&
DMA_InitStructure);
/*EnableDMAchannel1*/
DMA_Cmd(DMA1_Channel1,ENABLE);
/*ADC1configuration------------------------------------------------------*/
ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode=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);
/*ADC1regularchannel13configuration*/
ADC_RegularChannelConfig(ADC1,ADC_Channel_13,1,ADC_SampleTime_55Cycles5);
/*EnableADC1DMA*/
ADC_DMACmd(ADC1,ENABLE);
/*EnableADC1*/
ADC_Cmd(ADC1,ENABLE);
/*EnableADC1resetcalibarationregister*/
ADC_ResetCalibration(ADC1);
/*ChecktheendofADC1resetcalibrationregister*/
while(ADC_GetResetCalibrationStatus(ADC1));
/*StartADC1calibaration*/
ADC_StartCalibration(ADC1);
/*ChecktheendofADC1calibration*/
while(ADC_GetCalibrationStatus(ADC1));
/*StartADC1SoftwareConversion*/
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,结束Y
while
(1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 波形 显示