📄 main.c
字号:
#include <iostm32f10xxE.h>
#include "stm32f10x_it.h"
/*******************尚文欢 shangwenhuan@126.com*********************/
volatile unsigned long en=0;
/*********************************************************************/
volatile void delay_us(unsigned int tmr){
while(--tmr);
}
volatile void delay_ms(unsigned int tmr){
while(tmr--){
delay_us(1000);
}
}
/**********************************************************************/
volatile void MCU_PWR_INITIAL (void){
PWR_CR |= (7<<5)|(1<<4); //enable PDR PVD=2.9V
}
/**********************************************************************/
volatile void MCU_CLK_INITIAL (void){
RCC_CR |= (1<<16);
RCC_CR &= ~(1<<0);
RCC_CFGR |= (4<<24)|(2<<18)|(1<<17)|(1<<16)|(2<<2)|(2<<0);
RCC_CFGR |= (4<<8); //APB1 36MHz
RCC_CR |= (1<<24);
}
/**********************************************************************/
volatile void SysTick_intial (void){
SYSTICKRVR = 40000;//10ms
SYSTICKCSR |= (1<<1)|(1<<0);//systick clk from AHB
}
/**********************************************************************/
/**********************************************************************/
volatile void USART1_INITIAL (void){
RCC_APB2RSTR |= (1<<14);
RCC_APB2RSTR &= ~(1<<14);
RCC_APB2ENR |= (unsigned long)(1<<14);//enable the clk of USART1
USART1_CR1 |= (unsigned long)(1<<13);//enable USART1
USART1_BRR |= (unsigned long)0xd05;//Budrad = 9600
USART1_CR1 |= (unsigned long)(1<<3);
USART1_CR1 |= (unsigned long)(1<<2);
}
/**********************************************************************/
/**********************************************************************/
volatile void GPIO_INITIAL (void){
RCC_APB2ENR |= (1<<8)|(1<<7)|(1<<6)|(1<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<0);
GPIOA_CRH = 0x444444bb; //PA 15~8
GPIOA_CRL = 0x44444444; //PA 7 ~0
GPIOB_CRH = 0x44444444; //PB 15~8
GPIOB_CRL = 0x44444444; //PB 7 ~0
GPIOC_CRH = 0x99999999;//PC 15~8
GPIOC_CRL = 0x44424444;//PC 7 ~0
GPIOD_CRH = 0x99999999;//PD 15~8
GPIOD_CRL = 0x99999999;//PD 7 ~0
GPIOE_CRH = 0x99999999;//PE 15~8
GPIOE_CRL = 0x99999944;//PE 7 ~0
GPIOF_CRH = 0x99994444;//PF 15~8
GPIOF_CRL = 0x44999999;//PF 7 ~0
GPIOG_CRH = 0x49999994;//PG 15~8
GPIOG_CRL = 0x44999999;//PG 7 ~0
}
/**********************************************************************/
volatile void FSMC_INITIAL (void){
RCC_AHBENR |= (1<<8); // enable FSMC clk
FSMC_BCR3 |= (1<<0);
}
/**********************************************************************/
volatile void MCU_SYS_INITIAL (void){
MCU_PWR_INITIAL ();
MCU_CLK_INITIAL ();
SysTick_intial ();
GPIO_INITIAL ();
USART1_INITIAL ();
FSMC_INITIAL ();
}
/**********************************************************************/
void SysTickHandler(void)
{
if(en<100) en++;
else en=0;
}
void USART1_TRAN (unsigned char temp){
USART1_DR = temp;
}
/**********************************************************************/
unsigned short *LCD_Index = (unsigned short *)0x68000000;
unsigned short *LCD_DATA = (unsigned short *)0x68ff0000;
/**********************************************************************/
volatile void TFT_LCD_INITIAL (void){
GPIOC_ODR &= ~(1<<4);
delay_ms(2000);
GPIOC_ODR |= (1<<4);
delay_ms(100);
*LCD_Index = 0x0007;
*LCD_DATA = 0x0000;
*LCD_Index = 0x0012;
*LCD_DATA = 0x0000;
delay_ms(20);
*LCD_Index = 0x0000;
*LCD_Index = 0x0000;
*LCD_Index = 0x0000;
*LCD_Index = 0x0000;
delay_ms(10);
*LCD_Index = 0x00a4;
*LCD_DATA = 0x0001;
*LCD_Index = 0x0060;
*LCD_DATA = 0x2700;
*LCD_Index = 0x0008;
*LCD_DATA = 0x0503;
//GAMMA SETTING
*LCD_Index = 0x0007;
*LCD_DATA = 0x0001;
*LCD_Index = 0x0017;
*LCD_DATA = 0x0001;
*LCD_Index = 0x0010;
*LCD_DATA = 0x10b0;
*LCD_Index = 0x0011;
*LCD_DATA = 0x0117;
*LCD_Index = 0x0012;
*LCD_DATA = 0x011a;
*LCD_Index = 0x0013;
*LCD_DATA = 0x0a00;
*LCD_Index = 0x0029;
*LCD_DATA = 0x000b;
*LCD_Index = 0x0012;
*LCD_DATA = 0x013a;
//USER DISPLAY MODE SETTING
*LCD_Index = 0x0020;
*LCD_DATA = 0x0000;
*LCD_Index = 0x0021;
*LCD_DATA = 0x0000;
//DISPLAY ON SEQUENCE
*LCD_Index = 0x0022;
*LCD_DATA = 0xffff;
}
void main(void)
{
//unsigned char j;
MCU_SYS_INITIAL();
TFT_LCD_INITIAL();
while(1){
if(USART1_SR & (1<<5)){
//GPIOF_ODR ^= (1<<6);
USART1_TRAN (USART1_DR);
delay_ms(10);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -