Browse Source

[bsp]stm32f103-keysking ADC PWM1 I2C1驱动 (#10356)

* [bsp]stm32f103-keysking ADC与PWM1驱动

* Update README.md

* 删除include main.h

* 增加I2C1驱动

* 添加yml
qianjiuyuan 2 weeks ago
parent
commit
e97c5822b4

+ 100 - 99
bsp/stm32/README.md

@@ -2,105 +2,106 @@
 
 
 STM32 系列 BSP 目前支持情况如下表所示:
 STM32 系列 BSP 目前支持情况如下表所示:
 
 
-| **BSP 文件夹名称**                                                  | **开发板名称**                          |
-|:-------------------------------------------------------------- |:---------------------------------- |
-| **F0 系列**                                                      |                                    |
-| [stm32f072-st-nucleo](stm32f072-st-nucleo)                     | ST 官方 STM32F072-nucleo 开发板         |
-| [stm32f091-st-nucleo](stm32f091-st-nucleo)                     | ST 官方 STM32F091-nucleo 开发板         |
-| **F1 系列**                                                      |                                    |
-| [stm32f103-100ask-mini](stm32f103-100ask-mini)                 | 百问网F103 Mini开发板                    |
-| [stm32f103-100ask-pro](stm32f103-100ask-pro)                   | 百问网F103 Pro开发板                     |
-| [stm32f103-atk-nano](stm32f103-atk-nano)                       | 正点原子 F103 NANO 开发板                 |
-| [stm32f103-atk-warshipv3](stm32f103-atk-warshipv3)             | 正点原子 F103 战舰V3 开发板                 |
-| [stm32f103-blue-pill](stm32f103-blue-pill)                     | STM32F103C8T6蓝色最小系统板               |
-| [stm32f103-dofly-lyc8](stm32f103-dofly-lyc8)                   | 德飞莱 STM32F103 开发板                  |
-| [stm32f103-dofly-M3S](stm32f103-dofly-M3S)                     | 德飞莱 STM32F103 开发板                  |
-| [stm32f103-fire-arbitrary](stm32f103-fire-arbitrary/)          | 野火 F103 霸道开发板                      |
-| [stm32f103-gizwits-gokitv21](stm32f103-gizwits-gokitv21)       | GoKit V2.1开发板                      |
-| [stm32f103-hw100k-ibox](stm32f103-hw100k-ibox)                 | 硬件十万个为什么 STM32F103 iBox 开发板        |
-| [stm32f103-onenet-nbiot](stm32f103-onenet-nbiot)               | STM32F103 OneNET NB-IoT 开发板        |
-| [stm32f103-yf-ufun](stm32f103-yf-ufun)                         | STM32F103 yf-ufun 开发板              |
-| [stm32f107-uc-eval](stm32f107-uc-eval)                         | uC/Eval STM32F107 评估板(中国版)         |
-| **F2 系列**                                                      |                                    |
-| [stm32f207-st-nucleo](stm32f207-st-nucleo)                     | ST 官方 STM32F207-nucleo 开发板         |
-| **F3 系列**                                                      |                                    |
-| [stm32f302-st-nucleo](stm32f302-st-nucleo)                     | ST 官方 STM32F302-nucleo 开发板         |
-| [stm32f334-st-nucleo](stm32f334-st-nucleo)                     | ST 官方 STM32F334-nucleo 开发板         |
-| **F4 系列**                                                      |                                    |
-| [stm32f407-rt-spark](stm32f407-rt-spark)                       | 睿赛德官方 F407 星火一号开发板                 |
-| [stm32f401-st-nucleo](stm32f401-st-nucleo)                     | ST 官方 STM32F401 Nucleo-64 开发板      |
-| [stm32f405-smdz-breadfruit](stm32f405-smdz-breadfruit)         | 三木电子 SM1432F405 开发板                |
-| [stm32f407-lckfb-skystar](stm32f407-lckfb-skystar)             | 立创开发板 天空星STM32F407开发板        |
-| [stm32f407-atk-explorer](stm32f407-atk-explorer)               | 正点原子 F407 探索者开发板                   |
-| [stm32f407-robomaster-c](stm32f407-robomaster-c)               | 大疆公司 RoboMaster C型开发板              |
-| [stm32f407-st-discovery](stm32f407-st-discovery)               | ST 官方 STM32F407-discovery 开发板      |
-| [stm32f410-st-nucleo](stm32f410-st-nucleo)                     | ST 官方 STM32F410-Nucleo-64 开发板      |
-| [stm32f411-atk-nano](stm32f411-atk-nano/)                      | 正点原子 F411 NANO 开发板                 |
-| [stm32f411-st-nucleo](stm32f411-st-nucleo/)                    | ST 官方 STM32F411-Nucleo-64 开发板      |
-| [stm32f411-weact-MiniF4](stm32f411-weact-MiniF4/)              | F401/F411最小系统开发板(Black Pill)       |
-| [stm32f412-st-nucleo](stm32f412-st-nucleo/)                    | ST 官方 STM32F412-Nucleo-144 开发板     |
-| [stm32f413-st-nucleo](stm32f413-st-nucleo/)                    | ST 官方 STM32F413-Nucleo-144 开发板     |
-| [stm32f427-robomaster-a](stm32f427-robomaster-a/)              | 大疆公司 RoboMaster A型开发板              |
-| [stm32f429-armfly-v6](stm32f429-armfly-v6)                     | 安富莱 F429-v6 开发板                    |
-| [stm32f429-atk-apollo](stm32f429-atk-apollo)                   | 正点原子 F429 阿波罗开发板                   |
-| [stm32f429-fire-challenger](stm32f429-fire-challenger/)        | 野火 F429 挑战者开发板                     |
-| [stm32f429-st-disco](stm32f429-st-disco)                       | ST 官方 STM32F429-discovery 开发板      |
-| [stm32f446-st-nucleo](stm32f446-st-nucleo)                     | ST 官方 STM32F446-nucleo 开发板         |
-| [stm32f469-st-disco](stm32f469-st-disco)                       | ST 官方 STM32F469-discovery 开发板      |
-| [stm32f407-fk407m2-zgt6](stm32f407-fk407m2-zgt6)                       | 反客科技 FK407M2-ZGT6 开发板      |
-| **F7 系列**                                                      |                                    |
-| [stm32f746-st-disco](stm32f746-st-disco)                       | ST 官方 STM32F746-discovery 开发板      |
-| [stm32f767-atk-apollo](stm32f767-atk-apollo)                   | 正点原子 F767 阿波罗开发板                   |
-| [stm32f767-fire-challenger-v1](stm32f767-fire-challenger-v1/)  | 野火 F767-V1 挑战者开发板                  |
-| [stm32f767-st-nucleo](stm32f767-st-nucleo)                     | ST 官方 STM32F767-nucleo 开发板         |
-| [stm32f769-st-disco](stm32f769-st-disco)                       | ST 官方 STM32f769-discovery 开发板      |
-| **G0 系列**                                                      |                                    |
-| [stm32g030-tiny-board](stm32g030-tiny-board)                   | STM32G030-tiny-board 开发板             |
-| [stm32g070-st-nucleo](stm32g070-st-nucleo)                     | ST 官方 STM32G070-nucleo 开发板         |
-| [stm32g071-st-nucleo](stm32g071-st-nucleo)                     | ST 官方 STM32G071-nucleo 开发板         |
-| **G4 系列**                                                      |                                    |
-| [stm32g431-st-nucleo](stm32g431-st-nucleo)                     | ST 官方 STM32G431-nucleo 开发板         |
-| **H7 系列**                                                      |                                    |
-| [stm32h723-st-nucleo](stm32h723-st-nucleo)                     | ST 官方 STM32H723-nucleo 开发板         |
-| [stm32h743-armfly-v7](stm32h743-armfly-v7)                     | 安富莱 STM32H743 v7 开发板               |
-| [stm32h743-atk-apollo](stm32h743-atk-apollo)                   | 正点原子 h743 阿波罗开发板                   |
-| [stm32h743-openmv-h7plus](stm32h743-openmv-h7plus)             | OPENMV 官方 H7-PLUS 开发板              |
-| [stm32h743-st-nucleo](stm32h743-st-nucleo)                     | ST 官方 STM32H743-nucleo 开发板         |
-| [stm32h747-st-discovery](stm32h747-st-discovery)               | ST 官方 STM32H747I-discovery 开发板     |
-| [stm32h750-armfly-h7-tool](stm32h750-armfly-h7-tool)           | 安富莱 STM32H750 Tool 开发板             |
-| [stm32h750-artpi](stm32h750-artpi)                             | RT-Thread 官方 STM32H750-artpi 开发板   |
-| [stm32h750-fk750m1-vbt6](stm32h750-fk750m1-vbt6)               | 反客科技 FK750M1-VBT6 开发板              |
-| [stm32h750-weact-ministm32h7xx](stm32h750-weact-ministm32h7xx) | 微行电子 STM32H7xx 核心板                 |
-| **L0 系列**                                                      |                                    |
-| [stm32l010-st-nucleo](stm32l010-st-nucleo)                     | ST 官方 STM32L010-nucleo 开发板         |
-| [stm32l053-st-nucleo](stm32l053-st-nucleo)                     | ST 官方 STM32L053-nucleo 开发板         |
-| **L4 系列**                                                      |                                    |
-| [stm32l4r5-st-nucleo](stm32l4r5-st-nucleo)                     | ST 官方 STM32L4R5-Nucleo 开发板         |
-| [stm32l4r9-st-eval](stm32l4r9-st-eval)                         | ST 官方 STM32L4R9I-EVAL 开发板          |
-| [stm32l412-st-nucleo](stm32l412-st-nucleo)                     | ST 官方 STM32L412-Nucleo 开发板         |
-| [stm32l431-BearPi](stm32l431-BearPi)                           | STM32L431 小熊派 开发板                  |
-| [stm32l432-st-nucleo](stm32l432-st-nucleo)                     | ST 官方 STM32L432-Nucleo 开发板         |
-| [stm32l433-st-nucleo](stm32l433-st-nucleo)                     | ST 官方 STM32L433-Nucleo 开发板         |
-| [stm32l452-st-nucleo](stm32l452-st-nucleo)                     | ST 官方 STM32L452-Nucleo 开发板         |
-| [stm32l475-atk-pandora](stm32l475-atk-pandora)                 | 正点原子 L475 潘多拉 IoT 开发板              |
-| [stm32l475-st-discovery](stm32l475-st-discovery)               | ST 官方 stm32l475-discovery 开发板      |
-| [stm32l476-st-nucleo](stm32l476-st-nucleo)                     | ST 官方 STM32L476-Nucleo 开发板         |
-| [stm32l433-ali-startkit](stm32l433-ali-startkit)               | 诺行 STM32L433 Ali Start Kit 开发板     |
-| [stm32l496-ali-developer](stm32l496-ali-developer)             | 诺行 STM32L496 Ali Developer Kit 开发板 |
-| [stm32l496-st-nucleo](stm32l496-st-nucleo)                     | ST 官方 STM32L496-Nucleo 开发板         |
-| [stm32l496-st-discovery](stm32l496-st-discovery)               | ST 官方 STM32L496G discovery 开发板     |
-| **L5 系列**                                                      |                                    |
-| [stm32l552-st-nucleo](stm32l552-st-nucleo)                     | ST 官方 STM32L552-Nucleo 开发板         |
-| **U5 系列**                                                      |                                    |
-| [stm32u575-st-nucleo](stm32u575-st-nucleo)                     | ST 官方 STM32U575ZI-Nucleo 开发板       |
-| **H5 系列**                                                      |                                    |
-| [stm32h563-st-nucleo](stm32h563-st-nucleo)                     | ST 官方 STM32H563ZI-Nucleo 开发板       |
-| **MP1 系列**                                                     |                                    |
-| [stm32mp157a-st-discovery](stm32mp157a-st-discovery)           | ST 官方 STM32MP157A-DK1 开发板          |
-| [stm32mp157a-st-ev1](stm32mp157a-st-ev1)                       | ST 官方 STM32MP157A-EV1 开发板          |
-| **WB 系列**                                                      |                                    |
-| [stm32wb55-st-nucleo](stm32wb55-st-nucleo)                     | ST 官方 STM32WB55-Nucleo 开发板         |
-| [stm32wl55-st-nucleo](stm32wl55-st-nucleo)                     | ST 官方 STM32WL55-Nucleo 开发板         |
+| **BSP 文件夹名称**                                                  | **开发板名称**                                         |
+|:-------------------------------------------------------------- |:------------------------------------------------- |
+| **F0 系列**                                                      |                                                   |
+| [stm32f072-st-nucleo](stm32f072-st-nucleo)                     | ST 官方 STM32F072-nucleo 开发板                        |
+| [stm32f091-st-nucleo](stm32f091-st-nucleo)                     | ST 官方 STM32F091-nucleo 开发板                        |
+| **F1 系列**                                                      |                                                   |
+| [stm32f103-100ask-mini](stm32f103-100ask-mini)                 | 百问网F103 Mini开发板                                   |
+| [stm32f103-100ask-pro](stm32f103-100ask-pro)                   | 百问网F103 Pro开发板                                    |
+| [stm32f103-atk-nano](stm32f103-atk-nano)                       | 正点原子 F103 NANO 开发板                                |
+| [stm32f103-atk-warshipv3](stm32f103-atk-warshipv3)             | 正点原子 F103 战舰V3 开发板                                |
+| [stm32f103-blue-pill](stm32f103-blue-pill)                     | STM32F103C8T6蓝色最小系统板                              |
+| [stm32f103-dofly-lyc8](stm32f103-dofly-lyc8)                   | 德飞莱 STM32F103 开发板                                 |
+| [stm32f103-dofly-M3S](stm32f103-dofly-M3S)                     | 德飞莱 STM32F103 开发板                                 |
+| [stm32f103-fire-arbitrary](stm32f103-fire-arbitrary/)          | 野火 F103 霸道开发板                                     |
+| [stm32f103-gizwits-gokitv21](stm32f103-gizwits-gokitv21)       | GoKit V2.1开发板                                     |
+| [stm32f103-hw100k-ibox](stm32f103-hw100k-ibox)                 | 硬件十万个为什么 STM32F103 iBox 开发板                       |
+| [stm32f103-keysking-learning](stm32f103-keysking-learning)     | Keysking STM32F103学习板 |
+| [stm32f103-onenet-nbiot](stm32f103-onenet-nbiot)               | STM32F103 OneNET NB-IoT 开发板                       |
+| [stm32f103-yf-ufun](stm32f103-yf-ufun)                         | STM32F103 yf-ufun 开发板                             |
+| [stm32f107-uc-eval](stm32f107-uc-eval)                         | uC/Eval STM32F107 评估板(中国版)                        |
+| **F2 系列**                                                      |                                                   |
+| [stm32f207-st-nucleo](stm32f207-st-nucleo)                     | ST 官方 STM32F207-nucleo 开发板                        |
+| **F3 系列**                                                      |                                                   |
+| [stm32f302-st-nucleo](stm32f302-st-nucleo)                     | ST 官方 STM32F302-nucleo 开发板                        |
+| [stm32f334-st-nucleo](stm32f334-st-nucleo)                     | ST 官方 STM32F334-nucleo 开发板                        |
+| **F4 系列**                                                      |                                                   |
+| [stm32f407-rt-spark](stm32f407-rt-spark)                       | 睿赛德官方 F407 星火一号开发板                                |
+| [stm32f401-st-nucleo](stm32f401-st-nucleo)                     | ST 官方 STM32F401 Nucleo-64 开发板                     |
+| [stm32f405-smdz-breadfruit](stm32f405-smdz-breadfruit)         | 三木电子 SM1432F405 开发板                               |
+| [stm32f407-lckfb-skystar](stm32f407-lckfb-skystar)             | 立创开发板 天空星STM32F407开发板                             |
+| [stm32f407-atk-explorer](stm32f407-atk-explorer)               | 正点原子 F407 探索者开发板                                  |
+| [stm32f407-robomaster-c](stm32f407-robomaster-c)               | 大疆公司 RoboMaster C型开发板                             |
+| [stm32f407-st-discovery](stm32f407-st-discovery)               | ST 官方 STM32F407-discovery 开发板                     |
+| [stm32f410-st-nucleo](stm32f410-st-nucleo)                     | ST 官方 STM32F410-Nucleo-64 开发板                     |
+| [stm32f411-atk-nano](stm32f411-atk-nano/)                      | 正点原子 F411 NANO 开发板                                |
+| [stm32f411-st-nucleo](stm32f411-st-nucleo/)                    | ST 官方 STM32F411-Nucleo-64 开发板                     |
+| [stm32f411-weact-MiniF4](stm32f411-weact-MiniF4/)              | F401/F411最小系统开发板(Black Pill)                      |
+| [stm32f412-st-nucleo](stm32f412-st-nucleo/)                    | ST 官方 STM32F412-Nucleo-144 开发板                    |
+| [stm32f413-st-nucleo](stm32f413-st-nucleo/)                    | ST 官方 STM32F413-Nucleo-144 开发板                    |
+| [stm32f427-robomaster-a](stm32f427-robomaster-a/)              | 大疆公司 RoboMaster A型开发板                             |
+| [stm32f429-armfly-v6](stm32f429-armfly-v6)                     | 安富莱 F429-v6 开发板                                   |
+| [stm32f429-atk-apollo](stm32f429-atk-apollo)                   | 正点原子 F429 阿波罗开发板                                  |
+| [stm32f429-fire-challenger](stm32f429-fire-challenger/)        | 野火 F429 挑战者开发板                                    |
+| [stm32f429-st-disco](stm32f429-st-disco)                       | ST 官方 STM32F429-discovery 开发板                     |
+| [stm32f446-st-nucleo](stm32f446-st-nucleo)                     | ST 官方 STM32F446-nucleo 开发板                        |
+| [stm32f469-st-disco](stm32f469-st-disco)                       | ST 官方 STM32F469-discovery 开发板                     |
+| [stm32f407-fk407m2-zgt6](stm32f407-fk407m2-zgt6)               | 反客科技 FK407M2-ZGT6 开发板                             |
+| **F7 系列**                                                      |                                                   |
+| [stm32f746-st-disco](stm32f746-st-disco)                       | ST 官方 STM32F746-discovery 开发板                     |
+| [stm32f767-atk-apollo](stm32f767-atk-apollo)                   | 正点原子 F767 阿波罗开发板                                  |
+| [stm32f767-fire-challenger-v1](stm32f767-fire-challenger-v1/)  | 野火 F767-V1 挑战者开发板                                 |
+| [stm32f767-st-nucleo](stm32f767-st-nucleo)                     | ST 官方 STM32F767-nucleo 开发板                        |
+| [stm32f769-st-disco](stm32f769-st-disco)                       | ST 官方 STM32f769-discovery 开发板                     |
+| **G0 系列**                                                      |                                                   |
+| [stm32g030-tiny-board](stm32g030-tiny-board)                   | STM32G030-tiny-board 开发板                          |
+| [stm32g070-st-nucleo](stm32g070-st-nucleo)                     | ST 官方 STM32G070-nucleo 开发板                        |
+| [stm32g071-st-nucleo](stm32g071-st-nucleo)                     | ST 官方 STM32G071-nucleo 开发板                        |
+| **G4 系列**                                                      |                                                   |
+| [stm32g431-st-nucleo](stm32g431-st-nucleo)                     | ST 官方 STM32G431-nucleo 开发板                        |
+| **H7 系列**                                                      |                                                   |
+| [stm32h723-st-nucleo](stm32h723-st-nucleo)                     | ST 官方 STM32H723-nucleo 开发板                        |
+| [stm32h743-armfly-v7](stm32h743-armfly-v7)                     | 安富莱 STM32H743 v7 开发板                              |
+| [stm32h743-atk-apollo](stm32h743-atk-apollo)                   | 正点原子 h743 阿波罗开发板                                  |
+| [stm32h743-openmv-h7plus](stm32h743-openmv-h7plus)             | OPENMV 官方 H7-PLUS 开发板                             |
+| [stm32h743-st-nucleo](stm32h743-st-nucleo)                     | ST 官方 STM32H743-nucleo 开发板                        |
+| [stm32h747-st-discovery](stm32h747-st-discovery)               | ST 官方 STM32H747I-discovery 开发板                    |
+| [stm32h750-armfly-h7-tool](stm32h750-armfly-h7-tool)           | 安富莱 STM32H750 Tool 开发板                            |
+| [stm32h750-artpi](stm32h750-artpi)                             | RT-Thread 官方 STM32H750-artpi 开发板                  |
+| [stm32h750-fk750m1-vbt6](stm32h750-fk750m1-vbt6)               | 反客科技 FK750M1-VBT6 开发板                             |
+| [stm32h750-weact-ministm32h7xx](stm32h750-weact-ministm32h7xx) | 微行电子 STM32H7xx 核心板                                |
+| **L0 系列**                                                      |                                                   |
+| [stm32l010-st-nucleo](stm32l010-st-nucleo)                     | ST 官方 STM32L010-nucleo 开发板                        |
+| [stm32l053-st-nucleo](stm32l053-st-nucleo)                     | ST 官方 STM32L053-nucleo 开发板                        |
+| **L4 系列**                                                      |                                                   |
+| [stm32l4r5-st-nucleo](stm32l4r5-st-nucleo)                     | ST 官方 STM32L4R5-Nucleo 开发板                        |
+| [stm32l4r9-st-eval](stm32l4r9-st-eval)                         | ST 官方 STM32L4R9I-EVAL 开发板                         |
+| [stm32l412-st-nucleo](stm32l412-st-nucleo)                     | ST 官方 STM32L412-Nucleo 开发板                        |
+| [stm32l431-BearPi](stm32l431-BearPi)                           | STM32L431 小熊派 开发板                                 |
+| [stm32l432-st-nucleo](stm32l432-st-nucleo)                     | ST 官方 STM32L432-Nucleo 开发板                        |
+| [stm32l433-st-nucleo](stm32l433-st-nucleo)                     | ST 官方 STM32L433-Nucleo 开发板                        |
+| [stm32l452-st-nucleo](stm32l452-st-nucleo)                     | ST 官方 STM32L452-Nucleo 开发板                        |
+| [stm32l475-atk-pandora](stm32l475-atk-pandora)                 | 正点原子 L475 潘多拉 IoT 开发板                             |
+| [stm32l475-st-discovery](stm32l475-st-discovery)               | ST 官方 stm32l475-discovery 开发板                     |
+| [stm32l476-st-nucleo](stm32l476-st-nucleo)                     | ST 官方 STM32L476-Nucleo 开发板                        |
+| [stm32l433-ali-startkit](stm32l433-ali-startkit)               | 诺行 STM32L433 Ali Start Kit 开发板                    |
+| [stm32l496-ali-developer](stm32l496-ali-developer)             | 诺行 STM32L496 Ali Developer Kit 开发板                |
+| [stm32l496-st-nucleo](stm32l496-st-nucleo)                     | ST 官方 STM32L496-Nucleo 开发板                        |
+| [stm32l496-st-discovery](stm32l496-st-discovery)               | ST 官方 STM32L496G discovery 开发板                    |
+| **L5 系列**                                                      |                                                   |
+| [stm32l552-st-nucleo](stm32l552-st-nucleo)                     | ST 官方 STM32L552-Nucleo 开发板                        |
+| **U5 系列**                                                      |                                                   |
+| [stm32u575-st-nucleo](stm32u575-st-nucleo)                     | ST 官方 STM32U575ZI-Nucleo 开发板                      |
+| **H5 系列**                                                      |                                                   |
+| [stm32h563-st-nucleo](stm32h563-st-nucleo)                     | ST 官方 STM32H563ZI-Nucleo 开发板                      |
+| **MP1 系列**                                                     |                                                   |
+| [stm32mp157a-st-discovery](stm32mp157a-st-discovery)           | ST 官方 STM32MP157A-DK1 开发板                         |
+| [stm32mp157a-st-ev1](stm32mp157a-st-ev1)                       | ST 官方 STM32MP157A-EV1 开发板                         |
+| **WB 系列**                                                      |                                                   |
+| [stm32wb55-st-nucleo](stm32wb55-st-nucleo)                     | ST 官方 STM32WB55-Nucleo 开发板                        |
+| [stm32wl55-st-nucleo](stm32wl55-st-nucleo)                     | ST 官方 STM32WL55-Nucleo 开发板                        |
 
 
 可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
 可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示:
 
 

+ 23 - 3
bsp/stm32/stm32f103-keysking-learning/.ci/attachconfig/ci.attachconfig.yml

@@ -2,8 +2,6 @@ scons.args: &scons
     scons_arg:
     scons_arg:
       - '--strict'
       - '--strict'
 
 
-
-
 devices.uart:
 devices.uart:
   <<: *scons
   <<: *scons
   kconfig:
   kconfig:
@@ -18,4 +16,26 @@ devices.pulse_encoder:
   <<: *scons
   <<: *scons
   kconfig:
   kconfig:
     - CONFIG_BSP_USING_PULSE_ENCODER=y
     - CONFIG_BSP_USING_PULSE_ENCODER=y
-    - CONFIG_BSP_USING_PULSE_ENCODER1=y
+devices.adc:
+  <<: *scons
+  kconfig:
+    - CONFIG_BSP_USING_ADC=y
+devices.i2c1:
+  <<: *scons
+  kconfig:
+    - CONFIG_BSP_USING_I2C1=y
+devices.pwm2:
+  <<: *scons
+  kconfig:
+    - CONFIG_BSP_USING_PWM=y
+    - CONFIG_BSP_USING_PWM2=y
+devices.pwm3:
+  <<: *scons
+  kconfig:
+    - CONFIG_BSP_USING_PWM=y
+    - CONFIG_BSP_USING_PWM3=y
+devices.pwm4:
+  <<: *scons
+  kconfig:
+    - CONFIG_BSP_USING_PWM=y
+    - CONFIG_BSP_USING_PWM4=y

+ 22 - 17
bsp/stm32/stm32f103-keysking-learning/README.md

@@ -26,10 +26,7 @@ Keysking学习板是B站UP主Keysking推出的一块基于ARM Cortex-M3内核的
 
 
 * MCU: STM32F103C8T6,主频72MHz,64KB FLASH,20KB RAM
 * MCU: STM32F103C8T6,主频72MHz,64KB FLASH,20KB RAM
 
 
-* 常用外设可参考图示:
-  
-  * 按键:2个,KEY1(PB12),KEY2(PB13)
-  * LED:3个,蓝灯(PA6),绿灯(PA7),红灯(PB0)
+* 常用外设可参考图示
 
 
 * 常用接口:USB转串口
 * 常用接口:USB转串口
 
 
@@ -41,19 +38,27 @@ Keysking学习板是B站UP主Keysking推出的一块基于ARM Cortex-M3内核的
 
 
 本BSP目前对外设的支持情况如下:
 本BSP目前对外设的支持情况如下:
 
 
-| 板载外设       |   支持情况   | 备注                                         |
-|------------|:--------:|--------------------------------------------|
-| USB转串口     |    支持    | UART2(用作finsh)                             |
-| 旋转编码器      |    支持    | A相(PA8),B相(PA9),按键(PB15)                   |
-| OLED       |          |                                            |
-| LED        |    支持    | GPIO or PWM: Blue(PA6),Green(PA7),Red(PB0) |
-| 无源蜂鸣器      |    支持    | PWM4_CH4                                   |
-| **片上外设**   | **支持情况** | **备注**                                     |
-| GPIO       |    支持    |                                            |
-| UART       |    支持    | UART2,3                                    |
-| PWM        |    支持    | PWM3,PWM4                                  |
-| **预留外设接口** | **支持情况** | **备注**                                     |
-| SERVO      |    支持    | PWM4_CH3                                   |
+| 板载外设                               | 支持情况     | 备注                                         |
+| ---------------------------------- |:--------:| ------------------------------------------ |
+| USB转串口                             | 支持       | UART2(用作finsh)                             |
+| 旋转编码器                              | 支持       | A相(PA8),B相(PA9),按键(PB15)                   |
+| OLED                               | 支持       | I2C1,0x7A                                  |
+| LED                                | 支持       | GPIO or PWM: Blue(PA6),Green(PA7),Red(PB0) |
+| 无源蜂鸣器                              | 支持       | PWM4_CH4                                   |
+| 电位器                                | 支持       | ADC1_IN5                                   |
+| 温湿度传感器                             | 支持       | I2C1,0x38                                  |
+| **片上外设**                           | **支持情况** | **备注**                                     |
+| GPIO                               | 支持       |                                            |
+| UART                               | 支持       | UART2,3                                    |
+| PWM                                | 支持       | PWM2,3,4                                   |
+| ADC                                | 支持       | ADC1                                       |
+| **预留外设接口**                         | **支持情况** | **备注**                                     |
+| SERVO                              | 支持       | PWM4_CH3                                   |
+| DRV8833                            | 支持       | PWM2_CH1&2                                 |
+| BLUETOOTH                          | 支持       | UART3                                      |
+| TCRT5000                           |          |                                            |
+| HC-SR04超声波                         |          |                                            |
+| NTC传感器 | 支持       | ADC1_IN4                                   |
 
 
 ## 使用说明
 ## 使用说明
 
 

File diff suppressed because it is too large
+ 0 - 0
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/.mxproject


+ 54 - 25
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/CubeMX_Config.ioc

@@ -1,4 +1,10 @@
 #MicroXplorer Configuration settings - do not modify
 #MicroXplorer Configuration settings - do not modify
+ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_5
+ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,master
+ADC1.NbrOfConversionFlag=1
+ADC1.Rank-0\#ChannelRegularConversion=1
+ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
+ADC1.master=1
 CAD.formats=
 CAD.formats=
 CAD.pinconfig=
 CAD.pinconfig=
 CAD.provider=
 CAD.provider=
@@ -7,36 +13,42 @@ GPIO.groupedBy=Group By Peripherals
 KeepUserPlacement=false
 KeepUserPlacement=false
 Mcu.CPN=STM32F103C8T6
 Mcu.CPN=STM32F103C8T6
 Mcu.Family=STM32F1
 Mcu.Family=STM32F1
-Mcu.IP0=NVIC
-Mcu.IP1=RCC
-Mcu.IP2=SYS
-Mcu.IP3=TIM1
-Mcu.IP4=TIM3
-Mcu.IP5=TIM4
-Mcu.IP6=USART2
-Mcu.IP7=USART3
-Mcu.IPNb=8
+Mcu.IP0=ADC1
+Mcu.IP1=NVIC
+Mcu.IP2=RCC
+Mcu.IP3=SYS
+Mcu.IP4=TIM1
+Mcu.IP5=TIM2
+Mcu.IP6=TIM3
+Mcu.IP7=TIM4
+Mcu.IP8=USART2
+Mcu.IP9=USART3
+Mcu.IPNb=10
 Mcu.Name=STM32F103C(8-B)Tx
 Mcu.Name=STM32F103C(8-B)Tx
 Mcu.Package=LQFP48
 Mcu.Package=LQFP48
 Mcu.Pin0=PC14-OSC32_IN
 Mcu.Pin0=PC14-OSC32_IN
 Mcu.Pin1=PC15-OSC32_OUT
 Mcu.Pin1=PC15-OSC32_OUT
-Mcu.Pin10=PA9
-Mcu.Pin11=PA13
-Mcu.Pin12=PA14
-Mcu.Pin13=PB8
-Mcu.Pin14=PB9
-Mcu.Pin15=VP_SYS_VS_Systick
-Mcu.Pin16=VP_TIM3_VS_ClockSourceINT
-Mcu.Pin17=VP_TIM4_VS_ClockSourceINT
+Mcu.Pin10=PA6
+Mcu.Pin11=PB10
+Mcu.Pin12=PB11
+Mcu.Pin13=PA8
+Mcu.Pin14=PA9
+Mcu.Pin15=PA13
+Mcu.Pin16=PA14
+Mcu.Pin17=PB8
+Mcu.Pin18=PB9
+Mcu.Pin19=VP_SYS_VS_Systick
 Mcu.Pin2=PD0-OSC_IN
 Mcu.Pin2=PD0-OSC_IN
+Mcu.Pin20=VP_TIM3_VS_ClockSourceINT
+Mcu.Pin21=VP_TIM4_VS_ClockSourceINT
 Mcu.Pin3=PD1-OSC_OUT
 Mcu.Pin3=PD1-OSC_OUT
-Mcu.Pin4=PA2
-Mcu.Pin5=PA3
-Mcu.Pin6=PA6
-Mcu.Pin7=PB10
-Mcu.Pin8=PB11
-Mcu.Pin9=PA8
-Mcu.PinsNb=18
+Mcu.Pin4=PA0-WKUP
+Mcu.Pin5=PA1
+Mcu.Pin6=PA2
+Mcu.Pin7=PA3
+Mcu.Pin8=PA4
+Mcu.Pin9=PA5
+Mcu.PinsNb=22
 Mcu.ThirdPartyNb=0
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserConstants=
 Mcu.UserName=STM32F103C8Tx
 Mcu.UserName=STM32F103C8Tx
@@ -53,6 +65,8 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false
 NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false
 NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
 NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
+PA0-WKUP.Signal=S_TIM2_CH1_ETR
+PA1.Signal=S_TIM2_CH2
 PA13.Mode=Serial_Wire
 PA13.Mode=Serial_Wire
 PA13.Signal=SYS_JTMS-SWDIO
 PA13.Signal=SYS_JTMS-SWDIO
 PA14.Mode=Serial_Wire
 PA14.Mode=Serial_Wire
@@ -65,6 +79,10 @@ PA3.GPIOParameters=GPIO_PuPd
 PA3.GPIO_PuPd=GPIO_PULLUP
 PA3.GPIO_PuPd=GPIO_PULLUP
 PA3.Mode=Asynchronous
 PA3.Mode=Asynchronous
 PA3.Signal=USART2_RX
 PA3.Signal=USART2_RX
+PA4.Locked=true
+PA4.Signal=ADCx_IN4
+PA5.Locked=true
+PA5.Signal=ADCx_IN5
 PA6.Locked=true
 PA6.Locked=true
 PA6.Signal=S_TIM3_CH1
 PA6.Signal=S_TIM3_CH1
 PA8.Signal=S_TIM1_CH1
 PA8.Signal=S_TIM1_CH1
@@ -115,7 +133,7 @@ ProjectManager.ToolChainLocation=
 ProjectManager.UAScriptAfterPath=
 ProjectManager.UAScriptAfterPath=
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UAScriptBeforePath=
 ProjectManager.UnderRoot=false
 ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_USART3_UART_Init-USART3-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_TIM1_Init-TIM1-false-HAL-true
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART2_UART_Init-USART2-false-HAL-true,4-MX_USART3_UART_Init-USART3-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_TIM4_Init-TIM4-false-HAL-true,7-MX_TIM1_Init-TIM1-false-HAL-true,8-MX_ADC1_Init-ADC1-false-HAL-true
 RCC.ADCFreqValue=12000000
 RCC.ADCFreqValue=12000000
 RCC.ADCPresc=RCC_ADCPCLK2_DIV6
 RCC.ADCPresc=RCC_ADCPCLK2_DIV6
 RCC.AHBFreq_Value=72000000
 RCC.AHBFreq_Value=72000000
@@ -140,10 +158,18 @@ RCC.TimSysFreq_Value=72000000
 RCC.USBFreq_Value=48000000
 RCC.USBFreq_Value=48000000
 RCC.USBPrescaler=RCC_USBCLKSOURCE_PLL_DIV1_5
 RCC.USBPrescaler=RCC_USBCLKSOURCE_PLL_DIV1_5
 RCC.VCOOutput2Freq_Value=8000000
 RCC.VCOOutput2Freq_Value=8000000
+SH.ADCx_IN4.0=ADC1_IN4,IN4
+SH.ADCx_IN4.ConfNb=1
+SH.ADCx_IN5.0=ADC1_IN5,IN5
+SH.ADCx_IN5.ConfNb=1
 SH.S_TIM1_CH1.0=TIM1_CH1,Encoder_Interface
 SH.S_TIM1_CH1.0=TIM1_CH1,Encoder_Interface
 SH.S_TIM1_CH1.ConfNb=1
 SH.S_TIM1_CH1.ConfNb=1
 SH.S_TIM1_CH2.0=TIM1_CH2,Encoder_Interface
 SH.S_TIM1_CH2.0=TIM1_CH2,Encoder_Interface
 SH.S_TIM1_CH2.ConfNb=1
 SH.S_TIM1_CH2.ConfNb=1
+SH.S_TIM2_CH1_ETR.0=TIM2_CH1,PWM Generation1 CH1
+SH.S_TIM2_CH1_ETR.ConfNb=1
+SH.S_TIM2_CH2.0=TIM2_CH2,PWM Generation2 CH2
+SH.S_TIM2_CH2.ConfNb=1
 SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
 SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
 SH.S_TIM3_CH1.ConfNb=1
 SH.S_TIM3_CH1.ConfNb=1
 SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3
 SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3
@@ -152,6 +178,9 @@ SH.S_TIM4_CH4.0=TIM4_CH4,PWM Generation4 CH4
 SH.S_TIM4_CH4.ConfNb=1
 SH.S_TIM4_CH4.ConfNb=1
 TIM1.IPParameters=Prescaler
 TIM1.IPParameters=Prescaler
 TIM1.Prescaler=2-1
 TIM1.Prescaler=2-1
+TIM2.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+TIM2.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
+TIM2.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2
 TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
 TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
 TIM3.IPParameters=Channel-PWM Generation1 CH1,Prescaler,Period,Pulse-PWM Generation1 CH1
 TIM3.IPParameters=Channel-PWM Generation1 CH1,Prescaler,Period,Pulse-PWM Generation1 CH1
 TIM3.Period=10000-1
 TIM3.Period=10000-1

+ 1 - 1
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/Inc/stm32f1xx_hal_conf.h

@@ -34,7 +34,7 @@
   */
   */
 
 
 #define HAL_MODULE_ENABLED
 #define HAL_MODULE_ENABLED
-  /*#define HAL_ADC_MODULE_ENABLED   */
+  #define HAL_ADC_MODULE_ENABLED
 /*#define HAL_CRYP_MODULE_ENABLED   */
 /*#define HAL_CRYP_MODULE_ENABLED   */
 /*#define HAL_CAN_MODULE_ENABLED   */
 /*#define HAL_CAN_MODULE_ENABLED   */
 /*#define HAL_CAN_LEGACY_MODULE_ENABLED   */
 /*#define HAL_CAN_LEGACY_MODULE_ENABLED   */

+ 128 - 3
bsp/stm32/stm32f103-keysking-learning/board/CubeMX_Config/Src/stm32f1xx_hal_msp.c

@@ -20,7 +20,6 @@
 /* USER CODE END Header */
 /* USER CODE END Header */
 
 
 /* Includes ------------------------------------------------------------------*/
 /* Includes ------------------------------------------------------------------*/
-// #include "main.h"
 /* USER CODE BEGIN Includes */
 /* USER CODE BEGIN Includes */
 #include <drv_common.h>
 #include <drv_common.h>
 /* USER CODE END Includes */
 /* USER CODE END Includes */
@@ -60,7 +59,7 @@
 /* USER CODE END 0 */
 /* USER CODE END 0 */
 
 
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
-                                        /**
+                                                            /**
   * Initializes the Global MSP.
   * Initializes the Global MSP.
   */
   */
 void HAL_MspInit(void)
 void HAL_MspInit(void)
@@ -83,6 +82,68 @@ void HAL_MspInit(void)
   /* USER CODE END MspInit 1 */
   /* USER CODE END MspInit 1 */
 }
 }
 
 
+/**
+* @brief ADC MSP Initialization
+* This function configures the hardware resources used in this example
+* @param hadc: ADC handle pointer
+* @retval None
+*/
+void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
+{
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(hadc->Instance==ADC1)
+  {
+  /* USER CODE BEGIN ADC1_MspInit 0 */
+
+  /* USER CODE END ADC1_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_ADC1_CLK_ENABLE();
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**ADC1 GPIO Configuration
+    PA4     ------> ADC1_IN4
+    PA5     ------> ADC1_IN5
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
+    GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN ADC1_MspInit 1 */
+
+  /* USER CODE END ADC1_MspInit 1 */
+  }
+
+}
+
+/**
+* @brief ADC MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param hadc: ADC handle pointer
+* @retval None
+*/
+void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
+{
+  if(hadc->Instance==ADC1)
+  {
+  /* USER CODE BEGIN ADC1_MspDeInit 0 */
+
+  /* USER CODE END ADC1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_ADC1_CLK_DISABLE();
+
+    /**ADC1 GPIO Configuration
+    PA4     ------> ADC1_IN4
+    PA5     ------> ADC1_IN5
+    */
+    HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5);
+
+  /* USER CODE BEGIN ADC1_MspDeInit 1 */
+
+  /* USER CODE END ADC1_MspDeInit 1 */
+  }
+
+}
+
 /**
 /**
 * @brief TIM_Encoder MSP Initialization
 * @brief TIM_Encoder MSP Initialization
 * This function configures the hardware resources used in this example
 * This function configures the hardware resources used in this example
@@ -117,6 +178,28 @@ void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef* htim_encoder)
 
 
 }
 }
 
 
+/**
+* @brief TIM_PWM MSP Initialization
+* This function configures the hardware resources used in this example
+* @param htim_pwm: TIM_PWM handle pointer
+* @retval None
+*/
+void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* htim_pwm)
+{
+  if(htim_pwm->Instance==TIM2)
+  {
+  /* USER CODE BEGIN TIM2_MspInit 0 */
+
+  /* USER CODE END TIM2_MspInit 0 */
+    /* Peripheral clock enable */
+    __HAL_RCC_TIM2_CLK_ENABLE();
+  /* USER CODE BEGIN TIM2_MspInit 1 */
+
+  /* USER CODE END TIM2_MspInit 1 */
+  }
+
+}
+
 /**
 /**
 * @brief TIM_Base MSP Initialization
 * @brief TIM_Base MSP Initialization
 * This function configures the hardware resources used in this example
 * This function configures the hardware resources used in this example
@@ -153,11 +236,31 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
 void HAL_TIM_MspPostInit(TIM_HandleTypeDef* htim)
 {
 {
   GPIO_InitTypeDef GPIO_InitStruct = {0};
   GPIO_InitTypeDef GPIO_InitStruct = {0};
-  if(htim->Instance==TIM3)
+  if(htim->Instance==TIM2)
+  {
+  /* USER CODE BEGIN TIM2_MspPostInit 0 */
+
+  /* USER CODE END TIM2_MspPostInit 0 */
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**TIM2 GPIO Configuration
+    PA0-WKUP     ------> TIM2_CH1
+    PA1     ------> TIM2_CH2
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN TIM2_MspPostInit 1 */
+
+  /* USER CODE END TIM2_MspPostInit 1 */
+  }
+  else if(htim->Instance==TIM3)
   {
   {
   /* USER CODE BEGIN TIM3_MspPostInit 0 */
   /* USER CODE BEGIN TIM3_MspPostInit 0 */
 
 
   /* USER CODE END TIM3_MspPostInit 0 */
   /* USER CODE END TIM3_MspPostInit 0 */
+
     __HAL_RCC_GPIOA_CLK_ENABLE();
     __HAL_RCC_GPIOA_CLK_ENABLE();
     /**TIM3 GPIO Configuration
     /**TIM3 GPIO Configuration
     PA6     ------> TIM3_CH1
     PA6     ------> TIM3_CH1
@@ -222,6 +325,28 @@ void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef* htim_encoder)
 
 
 }
 }
 
 
+/**
+* @brief TIM_PWM MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param htim_pwm: TIM_PWM handle pointer
+* @retval None
+*/
+void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* htim_pwm)
+{
+  if(htim_pwm->Instance==TIM2)
+  {
+  /* USER CODE BEGIN TIM2_MspDeInit 0 */
+
+  /* USER CODE END TIM2_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_TIM2_CLK_DISABLE();
+  /* USER CODE BEGIN TIM2_MspDeInit 1 */
+
+  /* USER CODE END TIM2_MspDeInit 1 */
+  }
+
+}
+
 /**
 /**
 * @brief TIM_Base MSP De-Initialization
 * @brief TIM_Base MSP De-Initialization
 * This function freeze the hardware resources used in this example
 * This function freeze the hardware resources used in this example

+ 42 - 0
bsp/stm32/stm32f103-keysking-learning/board/Kconfig

@@ -15,6 +15,7 @@ menu "Onboard Peripheral Drivers"
         default n
         default n
 
 
 
 
+
 endmenu
 endmenu
 
 
 menu "On-chip Peripheral Drivers"
 menu "On-chip Peripheral Drivers"
@@ -48,12 +49,43 @@ menu "On-chip Peripheral Drivers"
 
 
         endif
         endif
 
 
+    menuconfig BSP_USING_I2C1
+        bool "Enable I2C1 BUS"
+        default n
+        select RT_USING_I2C
+        select RT_USING_I2C_BITOPS
+        select RT_USING_PIN
+        if BSP_USING_I2C1
+            config BSP_I2C1_SCL_PIN
+                int "i2c1 scl pin number (PB8)"
+                range 0 143
+                default 24
+            config BSP_I2C1_SDA_PIN
+                int "I2C1 sda pin number (PB9)"
+                range 0 143
+                default 25
+        endif
+
+
     menuconfig BSP_USING_PWM
     menuconfig BSP_USING_PWM
         bool "Enable PWM"
         bool "Enable PWM"
         select RT_USING_PWM
         select RT_USING_PWM
         default n
         default n
 
 
         if BSP_USING_PWM
         if BSP_USING_PWM
+
+            menuconfig BSP_USING_PWM2
+                bool "Enable PWM2"
+                default n
+                if BSP_USING_PWM2
+                    config BSP_USING_PWM2_CH1
+                        bool "Enable PWM2_CH1"
+                        default y
+                    config BSP_USING_PWM2_CH2
+                        bool "Enable PWM2_CH2"
+                        default y
+                endif
+
             menuconfig BSP_USING_PWM3
             menuconfig BSP_USING_PWM3
                 bool "Enable PWM3"
                 bool "Enable PWM3"
                 default y
                 default y
@@ -100,7 +132,17 @@ menu "On-chip Peripheral Drivers"
             config BSP_USING_PULSE_ENCODER1
             config BSP_USING_PULSE_ENCODER1
             bool "Enable Pulse Encoder1"
             bool "Enable Pulse Encoder1"
             default y
             default y
+        endif
+
+    menuconfig BSP_USING_ADC
+        bool "Enable ADC"
+        select RT_USING_ADC
+        default n
 
 
+        if BSP_USING_ADC
+            config BSP_USING_ADC1
+            bool "Enable ADC1"
+            default y
         endif
         endif
 
 
 
 

+ 119 - 33
bsp/stm32/stm32f103-keysking-learning/project.ewp

@@ -220,6 +220,7 @@
           <state>RT_USING_LIBC</state>
           <state>RT_USING_LIBC</state>
           <state>_DLIB_ADD_EXTRA_SYMBOLS=0</state>
           <state>_DLIB_ADD_EXTRA_SYMBOLS=0</state>
           <state>__RTTHREAD__</state>
           <state>__RTTHREAD__</state>
+          <state>USE_HAL_DRIVER</state>
           <state>__RT_IPC_SOURCE__</state>
           <state>__RT_IPC_SOURCE__</state>
           <state>__RT_KERNEL_SOURCE__</state>
           <state>__RT_KERNEL_SOURCE__</state>
         </option>
         </option>
@@ -347,27 +348,30 @@
         <option>
         <option>
           <name>CCIncludePath2</name>
           <name>CCIncludePath2</name>
           <state />
           <state />
-          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
-          <state>$PROJ_DIR$\applications</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
+          <state>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\applications</state>
+          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
+          <state>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Inc</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
+          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
+          <state>$PROJ_DIR$\..\..\..\include</state>
           <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
           <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
+          <state>$PROJ_DIR$\board</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
+          <state>$PROJ_DIR$\packages\CMSIS-Core-latest\Include</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
+          <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
-          <state>$PROJ_DIR$\board</state>
-          <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
-          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
-          <state>$PROJ_DIR$\..\..\..\include</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
           <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\.</state>
-          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
         </option>
         </option>
         <option>
         <option>
           <name>CCStdIncCheck</name>
           <name>CCStdIncCheck</name>
@@ -1262,6 +1266,7 @@
           <state>RT_USING_LIBC</state>
           <state>RT_USING_LIBC</state>
           <state>_DLIB_ADD_EXTRA_SYMBOLS=0</state>
           <state>_DLIB_ADD_EXTRA_SYMBOLS=0</state>
           <state>__RTTHREAD__</state>
           <state>__RTTHREAD__</state>
+          <state>USE_HAL_DRIVER</state>
           <state>__RT_IPC_SOURCE__</state>
           <state>__RT_IPC_SOURCE__</state>
           <state>__RT_KERNEL_SOURCE__</state>
           <state>__RT_KERNEL_SOURCE__</state>
         </option>
         </option>
@@ -1389,27 +1394,30 @@
         <option>
         <option>
           <name>CCIncludePath2</name>
           <name>CCIncludePath2</name>
           <state />
           <state />
-          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
-          <state>$PROJ_DIR$\applications</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
+          <state>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\ipc</state>
+          <state>$PROJ_DIR$\applications</state>
+          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
+          <state>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Inc</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\config</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
+          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\phy</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
+          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension\fcntl\octal</state>
+          <state>$PROJ_DIR$\..\..\..\include</state>
           <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
           <state>$PROJ_DIR$\board\CubeMX_Config\Inc</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\extension</state>
+          <state>$PROJ_DIR$\board</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\epoll</state>
+          <state>$PROJ_DIR$\packages\CMSIS-Core-latest\Include</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
+          <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
+          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\eventfd</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
           <state>$PROJ_DIR$\..\..\..\components\libc\compilers\common\include</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
           <state>$PROJ_DIR$\..\libraries\HAL_Drivers</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\smp_call</state>
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
           <state>$PROJ_DIR$\..\..\..\components\finsh</state>
-          <state>$PROJ_DIR$\board</state>
-          <state>$PROJ_DIR$\..\..\..\libcpu\arm\cortex-m3</state>
-          <state>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers</state>
-          <state>$PROJ_DIR$\..\..\..\include</state>
-          <state>$PROJ_DIR$\..\..\..\components\drivers\include</state>
           <state>$PROJ_DIR$\.</state>
           <state>$PROJ_DIR$\.</state>
-          <state>$PROJ_DIR$\..\..\..\libcpu\arm\common</state>
-          <state>$PROJ_DIR$\..\..\..\components\libc\posix\io\poll</state>
         </option>
         </option>
         <option>
         <option>
           <name>CCStdIncCheck</name>
           <name>CCStdIncCheck</name>
@@ -2090,6 +2098,9 @@
       <name>$PROJ_DIR$\applications\main.c</name>
       <name>$PROJ_DIR$\applications\main.c</name>
     </file>
     </file>
   </group>
   </group>
+  <group>
+    <name>CMSIS-Core</name>
+  </group>
   <group>
   <group>
     <name>Compiler</name>
     <name>Compiler</name>
     <file>
     <file>
@@ -2170,6 +2181,12 @@
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
       <name>$PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c</name>
     </file>
     </file>
+    <file>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\misc\adc.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\..\..\..\components\drivers\misc\rt_drv_pwm.c</name>
+    </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\components\drivers\pin\dev_pin.c</name>
       <name>$PROJ_DIR$\..\..\..\components\drivers\pin\dev_pin.c</name>
     </file>
     </file>
@@ -2179,9 +2196,18 @@
   </group>
   </group>
   <group>
   <group>
     <name>Drivers</name>
     <name>Drivers</name>
+    <file>
+      <name>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_adc.c</name>
+    </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_gpio.c</name>
       <name>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_gpio.c</name>
     </file>
     </file>
+    <file>
+      <name>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_pwm.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_tim.c</name>
+    </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_usart.c</name>
       <name>$PROJ_DIR$\..\libraries\HAL_Drivers\drivers\drv_usart.c</name>
     </file>
     </file>
@@ -2198,16 +2224,16 @@
   <group>
   <group>
     <name>Finsh</name>
     <name>Finsh</name>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\finsh\shell.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\finsh\msh.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\finsh\cmd.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\finsh\msh_parse.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\finsh\msh.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\finsh\shell.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\components\finsh\msh_parse.c</name>
+      <name>$PROJ_DIR$\..\..\..\components\finsh\cmd.c</name>
     </file>
     </file>
   </group>
   </group>
   <group>
   <group>
@@ -2261,7 +2287,7 @@
   <group>
   <group>
     <name>klibc</name>
     <name>klibc</name>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\kstring.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\kerrno.c</name>
     </file>
     </file>
     <file>
     <file>
       <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsnprintf_tiny.c</name>
       <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsnprintf_tiny.c</name>
@@ -2270,10 +2296,10 @@
       <name>$PROJ_DIR$\..\..\..\src\klibc\kstdio.c</name>
       <name>$PROJ_DIR$\..\..\..\src\klibc\kstdio.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsscanf.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\kstring.c</name>
     </file>
     </file>
     <file>
     <file>
-      <name>$PROJ_DIR$\..\..\..\src\klibc\kerrno.c</name>
+      <name>$PROJ_DIR$\..\..\..\src\klibc\rt_vsscanf.c</name>
     </file>
     </file>
   </group>
   </group>
   <group>
   <group>
@@ -2297,6 +2323,66 @@
   <group>
   <group>
     <name>POSIX</name>
     <name>POSIX</name>
   </group>
   </group>
+  <group>
+    <name>STM32F1-CMSIS</name>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Source\Templates\iar\startup_stm32f103xb.s</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_cmsis_driver-latest\Source\Templates\system_stm32f1xx.c</name>
+    </file>
+  </group>
+  <group>
+    <name>STM32F1-HAL</name>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_adc_ex.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_crc.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cec.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_uart.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_tim_ex.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc_ex.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_adc.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio_ex.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_pwr.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_dma.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_tim.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_usart.c</name>
+    </file>
+    <file>
+      <name>$PROJ_DIR$\packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cortex.c</name>
+    </file>
+  </group>
   <group>
   <group>
     <name>utestcases</name>
     <name>utestcases</name>
   </group>
   </group>

+ 203 - 12
bsp/stm32/stm32f103-keysking-learning/project.uvprojx

@@ -334,9 +334,9 @@
             <v6Rtti>0</v6Rtti>
             <v6Rtti>0</v6Rtti>
             <VariousControls>
             <VariousControls>
               <MiscControls />
               <MiscControls />
-              <Define>__CLK_TCK=RT_TICK_PER_SECOND, __STDC_LIMIT_MACROS, __RTTHREAD__, RT_USING_ARMLIBC, RT_USING_LIBC</Define>
+              <Define>RT_USING_ARMLIBC, __CLK_TCK=RT_TICK_PER_SECOND, __RTTHREAD__, __STDC_LIMIT_MACROS, RT_USING_LIBC, USE_HAL_DRIVER</Define>
               <Undefine />
               <Undefine />
-              <IncludePath>..\..\..\components\libc\posix\io\epoll;..\..\..\components\libc\compilers\common\include;..\..\..\libcpu\arm\common;board;.;..\..\..\components\libc\compilers\common\extension;..\..\..\components\libc\posix\io\poll;..\libraries\HAL_Drivers\drivers;applications;..\..\..\components\drivers\include;..\libraries\HAL_Drivers\drivers\config;..\..\..\libcpu\arm\cortex-m3;..\..\..\components\libc\posix\ipc;..\..\..\include;..\..\..\components\drivers\include;..\libraries\HAL_Drivers;..\..\..\components\drivers\phy;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\eventfd;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\components\drivers\include;..\..\..\components\drivers\smp_call;board\CubeMX_Config\Inc;..\..\..\components\finsh;..\..\..\components\drivers\include</IncludePath>
+              <IncludePath>..\..\..\components\drivers\include;..\..\..\include;..\..\..\components\drivers\include;packages\stm32f1_cmsis_driver-latest\Include;..\..\..\components\finsh;..\..\..\components\libc\compilers\common\extension;..\libraries\HAL_Drivers\drivers\config;board\CubeMX_Config\Inc;..\..\..\components\libc\compilers\common\extension\fcntl\octal;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m3;board;packages\stm32f1_hal_driver-latest\Inc;..\..\..\components\libc\posix\io\eventfd;..\..\..\components\drivers\phy;..\..\..\components\libc\compilers\common\include;..\libraries\HAL_Drivers\drivers;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\libc\posix\io\poll;packages\CMSIS-Core-latest\Include;..\..\..\components\drivers\smp_call;.;..\..\..\components\drivers\include;..\..\..\components\drivers\include;applications;..\..\..\components\libc\posix\io\epoll;..\..\..\components\libc\posix\ipc;..\libraries\HAL_Drivers</IncludePath>
             </VariousControls>
             </VariousControls>
           </Cads>
           </Cads>
           <Aads>
           <Aads>
@@ -638,6 +638,44 @@
               </FileOption>
               </FileOption>
             </File>
             </File>
           </Files>
           </Files>
+          <Files>
+            <File>
+              <FileName>adc.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\components\drivers\misc\adc.c</FilePath>
+              <FileOption>
+                <FileArmAds>
+                  <Cads>
+                    <VariousControls>
+                      <MiscControls> </MiscControls>
+                      <Define>__RT_IPC_SOURCE__</Define>
+                      <Undefine> </Undefine>
+                      <IncludePath> </IncludePath>
+                    </VariousControls>
+                  </Cads>
+                </FileArmAds>
+              </FileOption>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>rt_drv_pwm.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\..\..\components\drivers\misc\rt_drv_pwm.c</FilePath>
+              <FileOption>
+                <FileArmAds>
+                  <Cads>
+                    <VariousControls>
+                      <MiscControls> </MiscControls>
+                      <Define>__RT_IPC_SOURCE__</Define>
+                      <Undefine> </Undefine>
+                      <IncludePath> </IncludePath>
+                    </VariousControls>
+                  </Cads>
+                </FileArmAds>
+              </FileOption>
+            </File>
+          </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>dev_pin.c</FileName>
               <FileName>dev_pin.c</FileName>
@@ -679,6 +717,13 @@
         </Group>
         </Group>
         <Group>
         <Group>
           <GroupName>Drivers</GroupName>
           <GroupName>Drivers</GroupName>
+          <Files>
+            <File>
+              <FileName>drv_adc.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\libraries\HAL_Drivers\drivers\drv_adc.c</FilePath>
+            </File>
+          </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>drv_gpio.c</FileName>
               <FileName>drv_gpio.c</FileName>
@@ -686,6 +731,20 @@
               <FilePath>..\libraries\HAL_Drivers\drivers\drv_gpio.c</FilePath>
               <FilePath>..\libraries\HAL_Drivers\drivers\drv_gpio.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
+          <Files>
+            <File>
+              <FileName>drv_pwm.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\libraries\HAL_Drivers\drivers\drv_pwm.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>drv_tim.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\libraries\HAL_Drivers\drivers\drv_tim.c</FilePath>
+            </File>
+          </Files>
           <Files>
           <Files>
             <File>
             <File>
               <FileName>drv_usart.c</FileName>
               <FileName>drv_usart.c</FileName>
@@ -719,9 +778,9 @@
           <GroupName>Finsh</GroupName>
           <GroupName>Finsh</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>cmd.c</FileName>
+              <FileName>msh_parse.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
+              <FilePath>..\..\..\components\finsh\msh_parse.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
@@ -740,9 +799,9 @@
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>msh_parse.c</FileName>
+              <FileName>cmd.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\components\finsh\msh_parse.c</FilePath>
+              <FilePath>..\..\..\components\finsh\cmd.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
         </Group>
         </Group>
@@ -1038,9 +1097,9 @@
           <GroupName>klibc</GroupName>
           <GroupName>klibc</GroupName>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>rt_vsscanf.c</FileName>
+              <FileName>kerrno.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\rt_vsscanf.c</FilePath>
+              <FilePath>..\..\..\src\klibc\kerrno.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
@@ -1052,9 +1111,9 @@
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>kerrno.c</FileName>
+              <FileName>kstdio.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\kerrno.c</FilePath>
+              <FilePath>..\..\..\src\klibc\kstdio.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
           <Files>
           <Files>
@@ -1066,9 +1125,9 @@
           </Files>
           </Files>
           <Files>
           <Files>
             <File>
             <File>
-              <FileName>kstdio.c</FileName>
+              <FileName>rt_vsscanf.c</FileName>
               <FileType>1</FileType>
               <FileType>1</FileType>
-              <FilePath>..\..\..\src\klibc\kstdio.c</FilePath>
+              <FilePath>..\..\..\src\klibc\rt_vsscanf.c</FilePath>
             </File>
             </File>
           </Files>
           </Files>
         </Group>
         </Group>
@@ -1110,6 +1169,138 @@
             </File>
             </File>
           </Files>
           </Files>
         </Group>
         </Group>
+        <Group>
+          <GroupName>STM32F1-CMSIS</GroupName>
+          <Files>
+            <File>
+              <FileName>system_stm32f1xx.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_cmsis_driver-latest\Source\Templates\system_stm32f1xx.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>startup_stm32f103xb.s</FileName>
+              <FileType>2</FileType>
+              <FilePath>packages\stm32f1_cmsis_driver-latest\Source\Templates\arm\startup_stm32f103xb.s</FilePath>
+            </File>
+          </Files>
+        </Group>
+        <Group>
+          <GroupName>STM32F1-HAL</GroupName>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_pwr.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_pwr.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_rcc_ex.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc_ex.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_cec.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cec.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_tim.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_tim.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_adc.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_adc.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_dma.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_dma.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_gpio.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_gpio_ex.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_gpio_ex.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_adc_ex.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_adc_ex.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_cortex.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_cortex.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_uart.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_uart.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_crc.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_crc.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_tim_ex.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_tim_ex.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_rcc.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_rcc.c</FilePath>
+            </File>
+          </Files>
+          <Files>
+            <File>
+              <FileName>stm32f1xx_hal_usart.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>packages\stm32f1_hal_driver-latest\Src\stm32f1xx_hal_usart.c</FilePath>
+            </File>
+          </Files>
+        </Group>
       </Groups>
       </Groups>
     </Target>
     </Target>
   </Targets>
   </Targets>

Some files were not shown because too many files changed in this diff