stm32

如何在Keil中提高代码的可读性

2018-07-09  本文已影响0人  greedyhao

写代码犹如挖坑,挖坑容易,填坑难。一旦代码遇到BUG,需要慢慢调试时,你就会发现代码的可读性非常重要了,代码不整齐、命名不规范等等问题会导致代码像一团屎,看着恶心,检查起来更是悲伤。

所以,写代码前,最好先把代码的整体结构布置好,比如include放什么地方,define放什么地方,需要export的变量、函数放什么地方,最好又要保持自己所有的代码都保持这种模式,这时候,创建一个代码模板就非常有效了。

创建一个代码模板需要注意哪些方面呢?没有什么好的想法的话可以参考一下优秀的开源代码。

上面的代码风格从左到右,分别是FreeRTOS、FatFs、ST的代码风格,都很优秀,而且这些优秀的代码的共同点是,注释跟代码量差不多,甚至超过代码量。

因为的本身也在使用Keil,而且ST的注释很有逻辑,就选择了ST的注释风格。选择了注释风格后,就是创建代码模板了。

创建代码模板步骤如下

  1. 下载HAL库,并解压,打开Cube_FW_F7_V1.11.0\Drivers\BSP\Components\adv7533(也可以是其他文件夹下的),删除所有的代码,只留下注释

  2. 自己的工程中新建一个文件,复制到新建的文件中

  3. 打开工具栏的Configuration,选择Text Completion

  4. 新建一个Template,将模板复制进去

  5. 重复以上步骤,创建头文件的代码模板

使用代码模板方法

  1. 新建一个文件,要包含在项目中

  2. 在左侧的工具栏选择Templates

  3. 点击先前创建的代码模板

最后附上我创建的代码模板

头文件的代码模板

  1. /* Define to prevent recursive inclusion -------------------------------------*/

  2. #ifndef

  3. #define

  4. #ifdef __cplusplus

  5. extern "C" {

  6. #endif

  7. /* Includes ------------------------------------------------------------------*/

  8. /** @addtogroup BSP

  9.  * @{

  10.  */

  11. /** @addtogroup Components

  12.  * @{

  13.  */

  14. /** @addtogroup ST7735

  15.  * @{

  16.  */

  17. /** @defgroup ST7735_Exported_Types

  18.  * @{

  19.  */

  20. /**

  21.  * @}

  22.  */

  23. /** @defgroup ST7735_Exported_Constants

  24.  * @{

  25.  */

  26. /**

  27.  * @}

  28.  */

  29. /** @defgroup ADAFRUIT_SPI_LCD_Exported_Functions

  30.  * @{

  31.  */

  32. /**

  33.  * @}

  34.  */

  35. #ifdef __cplusplus

  36. }

  37. #endif

  38. #endif /*  */

  39. /**

  40.  * @}

  41.  */

  42. /**

  43.  * @}

  44.  */

  45. /**

  46.  * @}

  47.  */

  48. /************************ (C) COPYRIGHT greedyhao *****END OF FILE****/

源文件的代码模板

  1. /* Includes ------------------------------------------------------------------*/

  2. /** @addtogroup BSP

  3.  * @{

  4.  */

  5. /** @addtogroup Components

  6.  * @{

  7.  */

  8. /** @addtogroup ST7735

  9.  * @brief      This file provides a set of functions needed to drive the

  10.  *             ST7735 LCD.

  11.  * @{

  12.  */

  13. /** @defgroup ST7735_Private_TypesDefinitions

  14.  * @{

  15.  */

  16. /**

  17.  * @}

  18.  */

  19. /** @defgroup ST7735_Private_Defines

  20.  * @{

  21.  */

  22. /**

  23.  * @}

  24.  */

  25. /** @defgroup ST7735_Private_Macros

  26.  * @{

  27.  */

  28. /**

  29.  * @}

  30.  */  

  31. /** @defgroup ST7735_Private_Variables

  32.  * @{

  33.  */

  34. /**

  35. * @}

  36. */

  37. /** @defgroup ST7735_Private_FunctionPrototypes

  38.  * @{

  39.  */

  40. /**

  41. * @}

  42. */

  43. /** @defgroup ST7735_Private_Functions

  44.  * @{

  45.  */

  46. /**

  47. * @}

  48. */

  49. /**

  50. * @}

  51. */

  52. /**

  53. * @}

  54. */

  55. /**

  56. * @}

  57. */

  58. /************************ (C) COPYRIGHT greedyhao *****END OF FILE****/


上一篇下一篇

猜你喜欢

热点阅读