diff --git a/commit.template b/commit.template
index 2324afa9e244d55fa6f4745a55b1b45eae7c39c6..930d3e23af847e50c8bfff1d7975cd421df0bfd2 100644
--- a/commit.template
+++ b/commit.template
@@ -1,48 +1,48 @@
-<提交类型> (<功能范围>): <修改点简述>
-
-<修改点详述>(可选)
-
-固件版本: N/A
-
-是否需要文案翻译: 是/否
-
-########################################################################################
-# #
-# 示例: #
-# #
-# fix (network): 重复创建并关闭socket一定次数后,无法再次创建socket。 #
-# #
-# 1. 调用select接口并在其它线程调用socket.close()时,socket引用计数没有自减, #
-# 由于socket总数(即引用计数)有上限,导致创建一定数量的socket无法再次创建socket。 #
-# #
-# 2. 调用socket.close()释放资源时,将引用计数自减,及时释放出被占用的资源,修复该问题。#
-# #
-# 固件版本:EC600MCNLAR02_QPY #
-# #
-# 是否需要文案翻译: 是 #
-# #
-########################################################################################
-# #
-# 说明: #
-# #
-# <提交类型> 用于说明提交的类型,一般有以下几种: #
-# - feat: 新增feature。 #
-# - fix: 修复bug。 #
-# - docs: 仅仅修改了文档,如readme.md。 #
-# - style: 仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。 #
-# - refactor: 代码重构,没有新增功能或修复bug。 #
-# - perf: 优化相关,如提升性能、用户体验等。 #
-# - test: 测试用例,包括单元测试、集成测试。 #
-# - chore: 改变构建流程、或者增加依赖库、工具等。 #
-# - revert: 版本回滚。 #
-# #
-# <功能范围> 用于说明提交影响的功能范围。 #
-# #
-# <修改点简述> 提交目的的简短描述。 #
-# #
-# <修改点详述> 用于详细描述修改点,可选。不填写,请删除该行;若填写,请描述以下内容: #
-# - 为何进行修改 #
-# - 如何解决问题的 #
-# - 是否有副作用(必要时) #
-# #
-########################################################################################
+<提交类型> (<功能范围>): <修改点简述>
+
+<修改点详述>(可选)
+
+固件版本: N/A
+
+是否需要文案翻译: 是/否
+
+########################################################################################
+# #
+# 示例: #
+# #
+# fix (network): 重复创建并关闭socket一定次数后,无法再次创建socket。 #
+# #
+# 1. 调用select接口并在其它线程调用socket.close()时,socket引用计数没有自减, #
+# 由于socket总数(即引用计数)有上限,导致创建一定数量的socket无法再次创建socket。 #
+# #
+# 2. 调用socket.close()释放资源时,将引用计数自减,及时释放出被占用的资源,修复该问题。#
+# #
+# 固件版本:EC600MCNLAR02_QPY #
+# #
+# 是否需要文案翻译: 是 #
+# #
+########################################################################################
+# #
+# 说明: #
+# #
+# <提交类型> 用于说明提交的类型,一般有以下几种: #
+# - feat: 新增feature。 #
+# - fix: 修复bug。 #
+# - docs: 仅仅修改了文档,如readme.md。 #
+# - style: 仅仅是对格式进行修改,如逗号、缩进、空格等。不改变代码逻辑。 #
+# - refactor: 代码重构,没有新增功能或修复bug。 #
+# - perf: 优化相关,如提升性能、用户体验等。 #
+# - test: 测试用例,包括单元测试、集成测试。 #
+# - chore: 改变构建流程、或者增加依赖库、工具等。 #
+# - revert: 版本回滚。 #
+# #
+# <功能范围> 用于说明提交影响的功能范围。 #
+# #
+# <修改点简述> 提交目的的简短描述。 #
+# #
+# <修改点详述> 用于详细描述修改点,可选。不填写,请删除该行;若填写,请描述以下内容: #
+# - 为何进行修改 #
+# - 如何解决问题的 #
+# - 是否有副作用(必要时) #
+# #
+########################################################################################
diff --git "a/docs/development_guide/zh/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP-ADC\345\272\224\347\224\250\345\274\200\345\217\221.md" "b/docs/development_guide/zh/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP-ADC\345\272\224\347\224\250\345\274\200\345\217\221.md"
index f6be4ff1d67141e189d09295a56fae4262fcef05..3bbf79f46caf3e40e2de63eefe1b762a0f99844d 100644
--- "a/docs/development_guide/zh/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP-ADC\345\272\224\347\224\250\345\274\200\345\217\221.md"
+++ "b/docs/development_guide/zh/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP-ADC\345\272\224\347\224\250\345\274\200\345\217\221.md"
@@ -10,29 +10,29 @@ ADC(Analog to Digital Converter)即模拟数字转换器即[A/D转换器](https:
对于嵌入式产品开发来说,可靠的硬件电路是软件开发的前提条件。
-ADC相关电路设计需要参考每个型号模组的硬件设计手册和参考设计手册,可以在主页的[下载区](/download/)检索下载,但具体功能引脚仍需以QuecPython的[ADC功能API](/../../API_reference/zh/QuecPython类库/machine.ADC.html)介绍的引脚号为准。关于ADC功能常见的应用电路也可以通过搜素引擎了解更多信息。简单应用电路也可参考QuecPython的学习开发板,开发板可以通过天猫旗舰店、京东旗舰店等移远通信官方销售渠道获取,开发板的硬件设计同样是参考的上述硬件文档,开发板的原理图也可以在主页的[下载区](/download/)检索下载。
+ADC相关电路设计需要参考每个型号模组的硬件设计手册和参考设计手册,可以在主页的[下载区](/download/)检索下载,但具体功能引脚仍需以QuecPython的[ADC功能API](../../API_reference/zh/QuecPython类库/machine.ADC.html)介绍的引脚号为准。关于ADC功能常见的应用电路也可以通过搜素引擎了解更多信息。简单应用电路也可参考QuecPython的学习开发板,开发板可以通过天猫旗舰店、京东旗舰店等移远通信官方销售渠道获取,开发板的硬件设计同样是参考的上述硬件文档,开发板的原理图也可以在主页的[下载区](/download/)检索下载。
### 软件应用
-使用QuecPython开发的模组,想要读取ADC引脚的电压需要先完成QuecPython开发环境的搭建,再参考[ADC功能的API介绍文档](/../../API_reference/zh/QuecPython类库/machine.ADC.html)进行如下命令行测试即可打印出ADC通道0引脚当前的电压值,单位为毫安(mA)。
+使用QuecPython开发的模组,想要读取ADC引脚的电压需要先完成QuecPython开发环境的搭建,再参考[ADC功能的API介绍文档](../../API_reference/zh/QuecPython类库/machine.ADC.html)进行如下命令行测试即可打印出ADC通道0引脚当前的电压值,单位为毫安(mA)。
```python
-from misc import ADC
-adc = ADC()
-adc.open()
-voltage = adc.read(ADC.ADC0)
-print("ADC channel 0 voltage = {}mA".format(voltage))
+>>>from misc import ADC
+>>>adc = ADC()
+>>>adc.open()
+>>>voltage = adc.read(ADC.ADC0)
+>>>print("ADC channel 0 voltage = {}mA".format(voltage))
```
## ADC功能测试
使用QPYcom工具和模组进行交互,下面实例是基于ADC0。
-
+
## ADC功能应用实例
-[读取环境光照强度](../外设应用开发/外设-亮度传感器应用开发.html)
+- [读取环境光照强度](../外设应用开发/外设-亮度传感器应用开发.html)
-[读取环境温度值](../外设应用开发/外设-温度传感器应用开发.html)
+- [读取环境温度值](../外设应用开发/外设-温度传感器应用开发.html)
diff --git "a/docs/development_guide/zh/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP-PWM\345\272\224\347\224\250\345\274\200\345\217\221.md" "b/docs/development_guide/zh/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP-PWM\345\272\224\347\224\250\345\274\200\345\217\221.md"
new file mode 100644
index 0000000000000000000000000000000000000000..66fe5640d4da4d27f532afda01172e43a728cfba
--- /dev/null
+++ "b/docs/development_guide/zh/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP-PWM\345\272\224\347\224\250\345\274\200\345\217\221.md"
@@ -0,0 +1,55 @@
+# BSP-PWM应用开发
+
+## 什么是PWM
+
+[PWM](https://baike.baidu.com/item/脉冲宽度调制/10813756?fromtitle=PWM&fromid=3034961&fr=aladdin)代表脉冲宽度调制(Pulse Width Modulation),是一种常见的电子信号调制技术。它通过改变信号的脉冲宽度来控制电路或设备的输出功率或速度。PWM信号是一个周期性的信号,包含一个固定频率的基准信号和一个可变的占空比信号。占空比指的是脉冲宽度与周期之间的比率,它控制着信号的平均电平,从而控制电路或设备的输出功率或速度。
+
+PWM技术在电子工程、控制系统和机械工程等领域得到广泛应用。例如,在电机控制中,PWM信号可以用来控制电机的转速和转向。在电源管理中,PWM信号可以用来调节直流-直流转换器的输出电压和电流。在LED灯控制中,PWM信号可以用来控制LED的亮度和颜色。
+
+需要注意的是,在使用PWM技术时,需要选择适当的频率和占空比,以满足具体应用的需求。同时,还需要考虑PWM信号的稳定性和噪声等因素,以确保电路或设备的正常运行和可靠性。
+
+## 怎么使用PWM
+
+使用PWM技术需要通过特定的电路或芯片来生成PWM信号,支持QuecPython开发的模组大部分都具有此功能,具体可见[PWM功能API文档](../../API_reference/zh/QuecPython类库/PWM.html)确认是否支持此功能,可以按照以下步骤进行:
+
+### 硬件设计
+
+根据上述[PWM功能API文档](../../API_reference/zh/QuecPython类库/machine.PWM.html)介绍的引脚号和模组的硬件设计文档(从[下载区](/download/)获取)设计好硬件电路即可。设计硬件电路注意需要注意电平转换,以及电平转换电路的最大输出频率。
+
+如模组本身不支持或支持的数量不够用,则可以使用模组支持的任意一个[GPIO](../../API_reference/zh/QuecPython类库/machine.Pin.html)结合[定时器](../../API_reference/zh/QuecPython类库/machine.Timer.html)来粗略模拟输出PWM信号,硬件设计相同,软件实现可见下文。
+
+### 软件应用
+
+当使用模组自带PWM功能时:
+
+```python
+>>>from misc import PWM
+>>>pwm = PWM(PWM.PWM0, PWM.ABOVE_MS, 1, 5)
+>>>pwm.open()
+```
+
+当自行模拟PWM功能时需要注意QuecPython对于时序控制并不是很精确,请自行根据需求实现相关代码。
+
+### PWM功能测试
+
+在命令行中执行上面三行代码即可让模组的PWM0引脚输出一个周期为5ms,占空比为20%的方波,借助[逻辑分析仪](https://baike.baidu.com/item/逻辑分析仪/2364388?fr=aladdin)我们可以看到输出的波形。交互界面及逻辑分析仪获取到的波形如下图。
+
+
+
+
+
+如上图所示,填写的参数和实际抓取到的波形是能够对应上的,有关API具体参数含义可以仔细阅读API介绍文档进行理解。
+
+对于QuecPython的PWM API需要注意的是,填的参数不能超出填写范围,否则将会出现报错,这是常见问题。
+
+一般使用PWM功能主要步骤是:
+
+1. 设置PWM参数:根据具体应用需求,设置PWM信号的频率和占空比等参数。频率决定信号的周期,占空比决定信号的平均电平和电路或设备的输出功率或速度。对于QuecPython API,则需要填写高电平时间和周期来决定占空比和频率。即占空比=高电平时间/周期,频率=1秒/周期(单位:秒)。
+2. 连接PWM输出:将PWM信号的输出端口连接到需要控制的电路或设备,如电机、LED等。通常需要使用适当的电路元件,如电容、电感、MOSFET或三极管等,来控制PWM信号的幅值和波形。
+3. 调试和优化:根据实际情况,调试PWM电路或程序,以确保PWM信号的稳定性和准确性。可以通过示波器、数字万用表等仪器来监测PWM信号的波形和电平等参数,进行优化和调整。
+
+需要注意的是,在使用PWM技术时,需要根据具体应用需求选择合适的PWM芯片或电路,即选择合适的模组,并合理设置参数和连接电路。同时,还需要注意PWM信号的稳定性、可靠性和噪声等因素,以确保电路或设备的正常运行和安全性。
+
+### PWM功能应用实例
+
+- 暂无。
\ No newline at end of file
diff --git "a/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_ADC_0.png" "b/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_ADC_0.png"
index eab7de3c56bdb2b09dc6f78604018e54902ac5cc..4a1c10f5f4a3dbaf17ed0aed577e9d0c6de13e2c 100644
Binary files "a/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_ADC_0.png" and "b/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_ADC_0.png" differ
diff --git "a/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_PWM_0.png" "b/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_PWM_0.png"
new file mode 100644
index 0000000000000000000000000000000000000000..aec7390f55748fce445af07cdd78f9acdfc461bd
Binary files /dev/null and "b/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_PWM_0.png" differ
diff --git "a/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_PWM_1.png" "b/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_PWM_1.png"
new file mode 100644
index 0000000000000000000000000000000000000000..31a3e7b62dcdbd2c0691b809bbbdb9823e79c825
Binary files /dev/null and "b/docs/development_guide/zh/media/BSP\345\272\224\347\224\250\345\274\200\345\217\221/BSP_PWM_1.png" differ