《波形显示》相关参数程序
/* File Name : main.c* Author : Wuhan R&D Center, Embest* Date First Issued : 08/08/2008* Description : Main program body*/* Includes -*/#include "stm32f10x_lib.h"#include"stdio.h"/#include "monitor.h"/* 用于定义ITM Viewer相关的ITM激励寄存器端口 */*#define ITM_Port8(n) (*(volatile unsigned char *)(0xE0000000+4*n)#define ITM_Port16(n) (*(volatile unsigned short*)(0xE0000000+4*n)#define ITM_Port32(n) (*(volatile unsigned long *)(0xE0000000+4*n)#define DEMCR (*(volatile unsigned long *)(0xE000EDFC)#define TRCENA 0x01000000*/*用于定义是否使用ITM Viewer*/#define DBG_ITM /* Private typedef -*/* Private define -*/#define ADC1_DR_Address (u32)0x4001244C)int AD_value;/static unsigned long ticks;/unsigned char Clock1s;/* Private macro -*/* Private variables -*/ADC_InitTypeDef ADC_InitStructure;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);int fputc(int ch, FILE *f); /* Private functions -*/* Function Name : main* Description : Main program* Input : None* Output : None* Return : None*/#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(GPIOF,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)/1ms延时函数unsigned int i,x;for (x=0;x<ii;x+)for (i=0;i<100;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;i<8;i+) LED4OFF; if(dt&0x80)LED3ON;elseLED3OFF;dt=dt<<1;LED4ON; LED1ON;/cs=1;void readdata() /读数据unsigned char i,j;unsigned char ch6;send(0x09, 0); / 读数据 LED1OFF;/cs=0;LED4OFF;/sclk=0;for (i=0;i<6;i+)chi=0;for (j=0;j<8;j+)LED4ON;/sclk=1;if (!(GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_2)/sdata=0)chi=chi|(1<<(7-j);LED4OFF;/sclk=0; switch(ch0) case 255:Ver='A'break;case 127:Ver='B'break;case 0:if(ch1+ch2+ch3=0)Ver='D'elseVer='C'break; LED1ON;/cs=1;void LCD_Initialize() /LCD初始化unsigned char i; LED2ON;/rest=1;LED1ON;/cs=1;LED3OFF;/sdata=0;LED4ON;/sclk=1;LED2OFF;/rest=0;delayms(50);LED2ON;/rest=1;delayms(50); send(0x00, 0); / NOP delayms(5); send(0x01, 0); / LCD Software Reset delayms(5); send(0xC6, 0); / Initial Escape send(0xB9, 0); / Refresh set send(0x00, 1); readdata(); /读出数据 send(0xB5, 0); / Gamma Curve Set send(0x01, 1); send(0xbd, 0); /common driver output select/很重要的 if(Ver='D') send(0x04, 1); else send(0x00, 1); send(0xBE, 0); / Power Control send(0x03, 1); send(0x11, 0); / Sleep out send(0xBA, 0); / Power Control send(0x7F, 1); send(0x03, 1); send(0x36, 0); / 扫描方式 if (Ver='A') send(0x00|0x08,1); /RGB else send(0x00,1); /RGB send(0xB7, 0); / Temperature gradient set for(i=0; i<14; i+) send(0, 1); send(0x29, 0); /display ON send(0x03, 0); / Booster Voltage ON delay