
#include "lcd.h"
#include
u32 data;
u8 SendBuff[30];
void RCC_Configuration(void);
void GPIO_Configuration(void);
void LCD_Configuration(void);
void SPI_Configuration(void);
void delay(u32);
int main()
{
RCC_Configuration();
GPIO_Configuration();
LCD_Configuration();
SPI_Configuration();
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
SPI1->DR|=(0x16&0x3f)<<1|0x80;
delay(8000);
SPI1->DR|=0x55;
delay(8000);
GPIO_SetBits(GPIOA,GPIO_Pin_4);
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
SPI1->DR|=(0x06&0x3f)<<1;
delay(80000);
data=SPI1->DR;
delay(80000);
GPIO_SetBits(GPIOA,GPIO_Pin_4);
sprintf(SendBuff," %d ",data);
LCD_DisplayStringLine(Line0,SendBuff);
delay(500000);
}
}
void RCC_Configuration()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_AFIO,ENABLE);
}
void GPIO_Configuration()
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_OD;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_OD;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_OD;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
void LCD_Configuration()
{
STM3210B_LCD_Init();
LCD_Clear(Black);
LCD_SetBackColor(Black);
LCD_SetTextColor(White);
}
void SPI_Configuration()
{
SPI_InitTypeDef SPI_InitStructure;
SPI_I2S_DeInit(SPI1);
SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_256;
SPI_InitStructure.SPI_FirstBit= SPI_FirstBit_MSB;
SPI_InitStructure.SPI_CRCPolynomial=0x07;
SPI_Init(SPI1,&SPI_InitStructure);
SPI_Cmd(SPI1,ENABLE);
}
void delay(u32 time)
{
for(;time>0;time--);
}
7455是倾角传感器么?你读一个数就显示一次,应该加一个简单的滤波,比如说均值滤波什么的。