CoderNotCute 2 лет назад
Родитель
Сommit
c23995d46b
1 измененных файлов с 40 добавлено и 1 удалено
  1. 40 1
      README.md

+ 40 - 1
README.md

@@ -401,13 +401,52 @@ extern void mfbd_group_reset(const mfbd_group_t *_pbtn_group);
 
 ## MFBD段定义
 
-段定义(Section-Definition)
+段定义(Section-Definition)是程序编译期间会将不同的程序内容放到不同的程序段中,再通过链接器链接为固件。
+
+### GROUP命名和其他对应名称关系
+
+### MDK和IAR编译器使用方法
+
+MDK和IAR中都在软件内部进行更改了代码编译后的链接操作,可以很方便的使用,无需修改工程文件。
+
+### GCC使用方法
 
 ### 段定义调用按键检测
 
+由于使用了段定义,所以程序无法判断一个组是否有所有的按键种类。所以可能会出错,此时需要通过自行调整检测宏来进行按键检测。
+
+默认的按键扫描宏如下:
+
 ```c
+#define MFBD_GROUP_SCAN(GROUP)                      \
+    do                                              \
+    {                                               \
+        MFBD_GROUP_SCAN_PREPARE(GROUP);             \
+        MFBD_GROUP_SCAN_TBTN(GROUP);                \
+        MFBD_GROUP_SCAN_NBTN(GROUP);                \
+        MFBD_GROUP_SCAN_MBTN(GROUP);                \
+        MFBD_GROUP_SCAN_AFTER(GROUP);               \
+    } while (0)
 ```
 
+如果在`mfbd_cfg.h`中使能了`mbtn`,但是这个组又没有用到`mbtn`,那么就会出错,因为程序中没有`mbtn`对应的这个段。这时,自行将上述宏复制到程序中:
+
+```c
+    do                                              
+    {                                               
+        MFBD_GROUP_SCAN_PREPARE(GROUP);             
+        MFBD_GROUP_SCAN_TBTN(GROUP);                
+        MFBD_GROUP_SCAN_NBTN(GROUP);             
+        MFBD_GROUP_SCAN_AFTER(GROUP);               
+    } while (0)
+```
+
+这样就可以进行正确的通过编译了。
+
+### 段定义调用按键复位
+
+和段定义调用按键检测一样,需要自行调整程序。
+
 ## 移植使用示例工程
 
 MFBD提供了下面的测试例程,如果你使用其他开发板和其他RTOS,可以参考例程移植即可。