⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于STM32的数码相册.rar
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************** (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 + -