亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? STM32讀取SD卡上FAT12_16_32文件系統(tǒng)源代碼
?? 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);

/*******************************************************************************
 * Function Name  : main
 * Description    : Main program.
 * Input          : None
 * Output         : None
 * Return         : None
 *******************************************************************************/


int main(void)
{
    unsigned int i;
    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();
    NVIC_Config(); 
    TIM2_Config();
    USART_Config();

    
    USART1_Puts("Now, I'll read file 'i2c/uart.lst'.\n");

    // Register a work area for logical drive 0
    f_mount(0, &fs);

    // Open source file
    res = f_open(&fsrc, "i2c/uart.lst", FA_OPEN_EXISTING | FA_READ);
    if (res) 
    {
        USART1_Puts("Can't open i2c/uart.lst for read. :-(\n");
        goto exit;
    }
    
    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]);
    }
       
    f_close(&fsrc);
exit:
    // Unregister a work area before discard it
    f_mount(0, NULL);

    /* Infinite loop */
    while (1)
    {
    }
}
//******************************************************************************
// Function Name  : RCC_Configuration
// Description    : Reset and Clock Control configuration
// Input          : None
// Output         : None
// Return         : None
//******************************************************************************
void RCC_Config(void)
{
    ErrorStatus HSEStartUpStatus;

    // Reset the RCC clock configuration to default reset state
    RCC_DeInit();

    // Configures the High Speed External oscillator
    RCC_HSEConfig(RCC_HSE_ON);

    // Waits for HSE start-up
    HSEStartUpStatus = RCC_WaitForHSEStartUp();

    if(HSEStartUpStatus == SUCCESS)
    {
        // Enable Prefetch Buffer
        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

        // Sets the code latency value: FLASH Two Latency cycles
        FLASH_SetLatency(FLASH_Latency_2);

        // Configures the AHB clock(HCLK): HCLK = SYSCLK
        RCC_HCLKConfig(RCC_SYSCLK_Div1);

        // Configures the High Speed APB clcok(PCLK2): PCLK2 = HCLK
        RCC_PCLK2Config(RCC_HCLK_Div1);

        // Configures the Low Speed APB clock(PCLK1): PCLK1 = HCLK/2
        RCC_PCLK1Config(RCC_HCLK_Div2);

        // Configures the PLL clock source and multiplication factor
        // PLLCLK = HSE*PLLMul = 8*9 = 72MHz
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

        // Enable PLL
        RCC_PLLCmd(ENABLE);

        // Checks whether the specified RCC flag is set or not
        // Wait till PLL is ready
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

        // Select PLL as system clock source
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

        // Get System Clock Source
        // Wait till PLL is used as system clock source
        while(RCC_GetSYSCLKSource() != 0x08);
    }    
}

//******************************************************************************
// Function Name  : NVIC_Configuration
// Description    : Nested Vectored Interrupt Controller configuration
// Input          : None
// Output         : None
// Return         : None
//******************************************************************************
void NVIC_Config(void)
{
    NVIC_InitTypeDef NVIC_InitStructure; 
#ifdef VECT_TAB_RAM
    // Set the Vector Tab base at location at 0x20000000
    NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else
    // Set the Vector Tab base at location at 0x80000000
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif   
    /* Configure the NVIC Preemption Priority Bits[配置優(yōu)先級組] */  
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

    /* Enable the TIM2 gloabal Interrupt [允許TIM2全局中斷]*/
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure); 

}

void TIM2_Config(void)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    //  TIM_OCInitTypeDef  TIM_OCInitStructure ;
    TIM_DeInit( TIM2);                              //復位TIM2定時器

    /* TIM2 clock enable [TIM2定時器允許]*/
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

    /* TIM2 configuration */
    TIM_TimeBaseStructure.TIM_Period = 20;          //       
    TIM_TimeBaseStructure.TIM_Prescaler = 35999;    // 72M/(35999+1)/20 = 100Hz       
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  // 時鐘分割  
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //計數(shù)方向向上計數(shù)
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

    /* Clear TIM2 update pending flag[清除TIM2溢出中斷標志] */
    TIM_ClearFlag(TIM2, TIM_FLAG_Update);

    /* Enable TIM2 Update interrupt [TIM2溢出中斷允許]*/
    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);  

    /* TIM2 enable counter [允許tim2計數(shù)]*/
    TIM_Cmd(TIM2, ENABLE);
}

#ifdef  DEBUG
/*******************************************************************************
 * Function Name  : assert_failed
 * Description    : Reports the name of the source file and the source line number
 *                  where the assert_param error has occurred.
 * Input          : - file: pointer to the source file name
 *                  - line: assert_param error line source number
 * Output         : None
 * Return         : None
 *******************************************************************************/
void assert_failed(u8* file, u32 line)
{ 
    /* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

    /* Infinite loop */
    while (1)
    {
    }
}
#endif

/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品日日夜夜| 一本色道久久综合亚洲91| 成人自拍视频在线观看| 在线免费观看日本欧美| 久久综合色8888| 一区二区日韩av| 成人免费观看男女羞羞视频| 日韩午夜在线观看| 亚洲高清免费视频| 99精品在线免费| 久久久精品蜜桃| 精品写真视频在线观看 | 日韩欧美资源站| 亚洲免费电影在线| 99视频热这里只有精品免费| 日韩你懂的在线播放| 三级欧美在线一区| 欧美性猛交xxxxxxxx| 亚洲特黄一级片| 国产成a人亚洲精| 久久这里只精品最新地址| 日本欧美肥老太交大片| 欧美剧情片在线观看| 亚洲一区二区三区不卡国产欧美| 成人精品免费视频| 中文字幕国产一区| 国产成人啪免费观看软件 | 欧美日韩精品欧美日韩精品一 | 中文字幕欧美一| 国产精品亚洲午夜一区二区三区| 4438x亚洲最大成人网| 日韩精品色哟哟| 91精品国产一区二区三区香蕉 | 亚洲精选视频免费看| 色婷婷久久综合| 亚洲人成影院在线观看| 在线观看亚洲一区| 亚洲电影在线免费观看| 欧美人狂配大交3d怪物一区| 亚洲二区在线视频| 日韩亚洲欧美成人一区| 极品少妇一区二区三区精品视频| 26uuu亚洲婷婷狠狠天堂| 国产一区二区三区电影在线观看| 久久嫩草精品久久久精品一| 国产馆精品极品| 亚洲欧美综合色| 日本精品一级二级| 五月天一区二区| 欧美tk—视频vk| 国产98色在线|日韩| 综合久久久久综合| 欧美精品自拍偷拍| 精品一二三四区| 日本一区二区不卡视频| 色素色在线综合| 一区二区三区日本| 欧美精品视频www在线观看| 美女看a上一区| 国产精品传媒视频| 欧美日韩1234| 国产成人av电影免费在线观看| 国产欧美一区二区精品秋霞影院 | 国产麻豆欧美日韩一区| 国产精品美女久久福利网站 | 男人的天堂亚洲一区| 欧美videos中文字幕| 91麻豆国产福利精品| 日韩av中文字幕一区二区| 国产视频一区不卡| 欧美亚洲动漫精品| 激情综合亚洲精品| 亚洲黄色在线视频| 精品成a人在线观看| 91麻豆福利精品推荐| 久久精品国产亚洲高清剧情介绍 | 国产欧美日韩另类一区| 日本久久一区二区| 国产伦精品一区二区三区视频青涩| 国产精品久久久久久久久晋中 | 国产精品久久久久一区二区三区| 色av综合在线| 国产成人无遮挡在线视频| 亚洲丰满少妇videoshd| 中文字幕一区二区三区四区不卡 | 一区二区在线观看视频在线观看| 日韩欧美资源站| 在线观看日韩毛片| 成人高清伦理免费影院在线观看| 蜜臀精品一区二区三区在线观看| 尤物av一区二区| 国产女同互慰高潮91漫画| 日韩女同互慰一区二区| 欧美日韩成人在线一区| 色婷婷亚洲精品| 91在线云播放| 成人免费视频播放| 黄网站免费久久| 久久99国产精品免费网站| 婷婷一区二区三区| 亚洲综合色噜噜狠狠| 国产精品不卡在线观看| 久久久久久久电影| 欧美精品一区二区在线观看| 欧美日韩在线免费视频| 欧美午夜宅男影院| 色综合久久88色综合天天免费| 国产白丝网站精品污在线入口| 久久99精品久久久久婷婷| 麻豆91免费看| 日本视频一区二区| 亚洲6080在线| 日韩av不卡在线观看| 亚洲成人激情综合网| 天天做天天摸天天爽国产一区 | yourporn久久国产精品| 成人美女视频在线看| 91精品在线麻豆| 国产精品99久| 色婷婷综合久色| 91网站在线播放| 国产精品99久久久久久宅男| 亚洲国产sm捆绑调教视频 | 懂色av中文字幕一区二区三区| 亚洲与欧洲av电影| 亚洲天堂av一区| 中文字幕一区在线观看视频| 精品日韩一区二区| 日韩欧美国产一二三区| 国产在线不卡一区| 精品亚洲成a人| 国产乱码精品一区二区三区五月婷| 黑人巨大精品欧美一区| 精品一区二区在线视频| 亚洲精品免费在线观看| 亚洲欧美日韩国产综合| 一区二区三区美女| 美国一区二区三区在线播放| 久久国产麻豆精品| 国产精品一区二区三区网站| 国产在线观看免费一区| 色综合中文字幕国产 | 日韩毛片精品高清免费| 亚洲免费在线电影| 亚洲欧美日韩小说| 理论电影国产精品| 国产综合久久久久影院| 国产精品一区二区在线播放| 欧美亚洲禁片免费| 欧美一级久久久| 久久―日本道色综合久久| 国产日韩欧美综合在线| 亚洲一二三四区不卡| 日韩av电影天堂| 国产高清不卡一区| 91免费精品国自产拍在线不卡 | 亚洲欧洲日韩av| 亚洲综合激情网| 国产一区二区三区高清播放| av不卡免费在线观看| 欧美亚洲一区二区在线观看| 欧美一区二区视频在线观看2022| 7777女厕盗摄久久久| 中文字幕一区二区三区乱码在线| 一区二区三区中文字幕在线观看| 亚洲成a人在线观看| 国产精品夜夜爽| 欧美理论片在线| 久久久一区二区三区| 一区二区三区电影在线播| 丁香啪啪综合成人亚洲小说| 欧美日韩一区三区| 久久久亚洲精品石原莉奈| 日韩在线卡一卡二| 欧美三级视频在线播放| 色综合天天综合色综合av| 高清久久久久久| 亚洲精品一区二区在线观看| 亚洲天堂成人网| 国产精品888| 欧美亚洲国产一卡| 亚洲国产精品传媒在线观看| 亚洲电影第三页| 国产一区二区h| 51午夜精品国产| 国产欧美久久久精品影院| 亚洲成人1区2区| 精品国产91九色蝌蚪| 国产精品夜夜嗨| 欧美一区日韩一区| 国产亚洲欧美一级| 日韩二区在线观看| 欧美一级二级三级乱码| 夜夜精品浪潮av一区二区三区| 国产成人免费视频精品含羞草妖精 | 亚洲一区二区在线视频| 国产在线麻豆精品观看| 欧美精品一卡二卡| 亚洲午夜久久久久久久久电影院 | 精品一区二区三区免费视频|