📄 main.c
字号:
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name : main.c
* Author : MCD Application Team
* Version : V2.0.2
* Date : 07/11/2008
* Description : Main program body
********************************************************************************
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_lib.h"
#include "usart.h"
#include "ff.h"
#include "diskio.h"
#define NULL 0
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/
void RCC_Config(void);
void NVIC_Config(void);
void TIM2_Config(void);
void Delay(unsigned int k);
#define RED 0xf800
#define GREEN 0x07e0
#define BLUE 0x001f
#define WHITE 0xffff
#define BLACK 0x0000
#define YELLOW 0xFFE0
#define HZ_column 16 //汉字字体大小
#define TRANSP 1 //字体显示的时候不带背景颜色
#define NORMAL 0 //字体显示的时候有背景颜色
#define CHX 0x90 //通道Y+的选择控制字
#define CHY 0xD0 //通道X+的选择控制字
#define GUI_LCM_XMAX 240 /* 定义液晶x轴的点数 */
#define GUI_LCM_YMAX 320
/*******************************************************************************
* Function Name : main
* Description : Main program.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void Delay(unsigned int k)
{
unsigned int i,j;
for (i=0; i<k; i++)
for(j=0;j<0xffff;j++);
}
int main(void)
{
unsigned int i;
unsigned int Color_data;
BYTE buffer[512]; // file copy buffer
FATFS fs; // Work area (file system object) for logical drive
FIL fsrc; // file objects
FRESULT res; // FatFs function common result code
UINT br; // File R/W count
#ifdef DEBUG
debug();
#endif
RCC_Config();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
NVIC_Config();
TIM2_Config();
USART_Config();
Lcd_Init();
LCD_Initialize();
Set_ramaddr(0,0);
//send_command(0x22);
USART1_Puts("Now, I'll read file 'CORTEX.bin'.\n");
// Register a work area for logical drive 0
f_mount(0, &fs);
// Open source file
res = f_open(&fsrc, "GIRL_1.bin", FA_OPEN_EXISTING | FA_READ);
if (res)
{
USART1_Puts("Can't open CORTEX.bin for read. :-(\n");
goto exit;
}
LCD_WriteCommand(0x22);
DispClear();
DrawString(88, 50, "数码相册", RED,BLUE,TRANSP);
DrawString(75, 120, "作者:何殿超", RED,BLUE,TRANSP);
DrawString(70, 140, "指导教师:韩建", RED,BLUE,TRANSP);
DrawString(88, 210, "固定版本", RED,BLUE,TRANSP);
DrawString(103, 230, "V1.0", RED,BLUE,TRANSP);
Delay(0xff);
Set_ramaddr(0,0);
LCD_WriteCommand(0x22);
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i ){
USART1_Putc(buffer[i]) ;
if(i%2==0){
Color_data = buffer[i+1];
Color_data <<= 8;
Color_data |= buffer[i];
LCD_WriteData(Color_data);
}
}
}
Delay(0xff);
/////////////////////xianshi2/////////////////
// Register a work area for logical drive 0
f_mount(0, &fs);
// Open source file
res = f_open(&fsrc, "CORTEX.bin", FA_OPEN_EXISTING | FA_READ);
if (res)
{
USART1_Puts("Can't open CORTEX.bin for read. :-(\n");
goto exit;
}
LCD_WriteCommand(0x22);
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i ){
USART1_Putc(buffer[i]) ;
if(i%2==0){
Color_data = buffer[i+1];
Color_data <<= 8;
Color_data |= buffer[i];
LCD_WriteData(Color_data);
}
}
}
////////////////////////////xianshi2////////////////////////////
Delay(0xff);
/////////////////////xianshi3/////////////////
// Register a work area for logical drive 0
f_mount(0, &fs);
// Open source file
res = f_open(&fsrc, "BIRD.bin", FA_OPEN_EXISTING | FA_READ);
if (res)
{
USART1_Puts("Can't open CORTEX.bin for read. :-(\n");
goto exit;
}
LCD_WriteCommand(0x22);
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i ){
USART1_Putc(buffer[i]) ;
if(i%2==0){
Color_data = buffer[i+1];
Color_data <<= 8;
Color_data |= buffer[i];
LCD_WriteData(Color_data);
}
}
}
////////////////////////////xianshi3////////////////////////////
Delay(0xff);
/////////////////////xianshi4/////////////////
// Register a work area for logical drive 0
f_mount(0, &fs);
// Open source file
res = f_open(&fsrc, "BUG.bin", FA_OPEN_EXISTING | FA_READ);
if (res)
{
USART1_Puts("Can't open CORTEX.bin for read. :-(\n");
goto exit;
}
LCD_WriteCommand(0x22);
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i ){
USART1_Putc(buffer[i]) ;
if(i%2==0){
Color_data = buffer[i+1];
Color_data <<= 8;
Color_data |= buffer[i];
LCD_WriteData(Color_data);
}
}
}
////////////////////////////xianshi4////////////////////////////
Delay(0xff);
/////////////////////xianshi5/////////////////
// Register a work area for logical drive 0
f_mount(0, &fs);
// Open source file
res = f_open(&fsrc, "CAR_1.bin", FA_OPEN_EXISTING | FA_READ);
if (res)
{
USART1_Puts("Can't open CORTEX.bin for read. :-(\n");
goto exit;
}
LCD_WriteCommand(0x22);
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i ){
USART1_Putc(buffer[i]) ;
if(i%2==0){
Color_data = buffer[i+1];
Color_data <<= 8;
Color_data |= buffer[i];
LCD_WriteData(Color_data);
}
}
}
////////////////////////////xianshi5////////////////////////////
Delay(0xff);
/////////////////////xianshi6/////////////////
// Register a work area for logical drive 0
f_mount(0, &fs);
// Open source file
res = f_open(&fsrc, "GIRL_2.bin", FA_OPEN_EXISTING | FA_READ);
if (res)
{
USART1_Puts("Can't open CORTEX.bin for read. :-(\n");
goto exit;
}
LCD_WriteCommand(0x22);
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i ){
USART1_Putc(buffer[i]) ;
if(i%2==0){
Color_data = buffer[i+1];
Color_data <<= 8;
Color_data |= buffer[i];
LCD_WriteData(Color_data);
}
}
}
////////////////////////////xianshi6////////////////////////////
Delay(0xff);
/////////////////////xianshi6/////////////////
// Register a work area for logical drive 0
f_mount(0, &fs);
// Open source file
res = f_open(&fsrc, "GIRL_3.bin", FA_OPEN_EXISTING | FA_READ);
if (res)
{
USART1_Puts("Can't open CORTEX.bin for read. :-(\n");
goto exit;
}
LCD_WriteCommand(0x22);
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i ){
USART1_Putc(buffer[i]) ;
if(i%2==0){
Color_data = buffer[i+1];
Color_data <<= 8;
Color_data |= buffer[i];
LCD_WriteData(Color_data);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -