【SD卡专栏】STM32官方代码(SD卡驱动)注释欣赏

本文欣赏 STM32 官方 EVAL 开发板给出的SD卡例程的代码注释。

 

1. 在函数部分之前,将D.M.V.F(定义、宏、变量、函数)在文档之前全部用注释表明清楚,罗列好。

 1 /* Private macro -------------------------------------------------------------*/
 2 /** 
 3   * @brief  SDIO Static flags, TimeOut, FIFO Address  
 4   */
 5 #define NULL 0
 6 #define SDIO_STATIC_FLAGS               ((uint32_t)0x000005FF)
 7 #define SDIO_CMD0TIMEOUT                ((uint32_t)0x00010000)
 8 ...
 9 /* Private variables ---------------------------------------------------------*/
10 static uint32_t CardType =  SDIO_STD_CAPACITY_SD_CARD_V1_1;    //存储卡的类型,先把它初始化为1.1协议的卡
11 static uint32_t CSD_Tab[4], CID_Tab[4], RCA = 0;//存储CSD,DID,寄存器和卡相对地址
12 .....
13 
14 /* Private function prototypes -----------------------------------------------*/
15 static SD_Error CmdError(void);
16 static SD_Error CmdResp1Error(uint8_t cmd);
17 static SD_Error CmdResp7Error(void);
18 ...

 

 

2. 每个函数都有简介说明,和输入、输出参数的罗列和说明,有的甚至有函数的输入可选的参数的说明。

  SD_DMA_RxConfig 包含输入参数的说明。

 1  /*
 2   * 函数名:SD_DMA_RxConfig
 3   * 描述  :为SDIO接收数据配置DMA2的通道4的请求
 4   * 输入  :BufferDST:用于装载数据的变量指针
 5      *   : BufferSize:    缓冲区大小
 6   * 输出  :无
 7   */
 8 void SD_DMA_RxConfig(uint32_t *BufferDST, uint32_t BufferSize)
 9 {
10   DMA_InitTypeDef DMA_InitStructure;
11 
12   DMA_ClearFlag(DMA2_FLAG_TC4 | DMA2_FLAG_TE4 | DMA2_FLAG_HT4 | DMA2_FLAG_GL4);//清除DMA标志位
13 ....
14 }

 SD_Init 包含输出参数的说明。

 1 /**
 2  * 函数名:SD_Init
 3  * 描述  :初始化SD卡,使卡处于就绪状态(准备传输数据)
 4  * 输入  :无
 5  * 输出  :-SD_Error SD卡错误代码
 6  *         成功时则为 SD_OK
 7  * 调用  :外部调用
 8  */
 9 SD_Error SD_Init(void)
10 {
11     /*重置SD_Error状态*/
12     SD_Error errorstatus = SD_OK;
13   
14     NVIC_Configuration();
15     ...
16 }

 

 

3. 对于状态,由于状态是有限可选的数据类型,因此采用枚举定义。

1 typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus;
2 volatile TestStatus EraseStatus = FAILED, TransferStatus1 = FAILED, TransferStatus2 = FAILED;

 

4. 整个文件有日期、版本、简介、作者、文件路径等信息

/**
  ******************************************************************************
  * @file    SDIO/uSDCard/main.c 
  * @author  MCD Application Team
  * @version V3.5.0
  * @date    08-April-2011
  * @brief   Main program body
  ******************************************************************************
  * @attention
 .....

*/

 

posted @ 2023-06-04 17:24  FBshark  阅读(209)  评论(0编辑  收藏  举报