|
NUCLEO-8S208RB(基于STM8S208RBT6)和NUCLEO-8L152R8(基于STM8L152R8T6)开发板可用于评估所有STM8S系列和STM8L系列微控制器的主要特性。
本应用笔记简要介绍了如何在NUCLEO-8S208RB和NUCLEO-8L152R8开发板上使用ADC、TIM和GPIO外设。
当微控制器(本例中为STM8S208RBT6或STM8L152R8T6)使用连接到主机电脑的USB电缆供电时,定时器根据用户定义的周期触发ADC,以转换由可变电阻RV1(10KΩ)提供的模拟电压。 得到的平均电压测量值显示在LED灯条上。
1. 应用说明 本节主要介绍了使用NUCLEO-8S208RB或NUCLEO-8L152R8开发板在LED灯条上显示可变电压的硬件要求、应用程序的原理图和工作原理。
1.1 硬件要求 没有使用板载的组件。 所需的外部组件包含: • 四个LED:LD2、LD3、LD4、LD5 • 一个10KΩ可变电阻:RV1 • 四个1KΩ电阻:R1、R2、R3、R4 • 一个100 nF电容:C1。
1.2 应用原理图 电容C1滤除ADC输入引脚上的电压尖峰: • NUCLEO-8S208RB的PE6引脚上的ADC2_IN9功能 • NUCLEO-8L152R8的PC7引脚上的ADC1_IN3功能能 电阻器R1、R2、R3和R4分别限制流过LD2、LD3、LD4和LD5的电流。 图1. STM8S系列应用原理图
图2. STM8L系列应用原理图
1.3 规则 该应用手册使用了ADC1或ADC2、TIM1和GPIO外设。 可调电阻RV1的输入电压模拟信号在每个开发板中是不同的: • NUCLEO-8S208RB:在ADC2(PE6)的通道9上进行采样和滤波,内部由TIM1触发 • NUCLEO-8L152R8:在ADC1(PC7)的通道3上进行采样和滤波,内部由TIM1触发 该信号的平均值体现在LED灯条(LD2-5)上。 注意:即使默认情况下器件(STM8S208RBT6或STM8L152R8T6)使用3.3 V供电,但是在STM8S上用户仍可以将MCU VDD电源从3.3 V切换到5 V。 表2. 电压和LED对应关系 电压(V) | 点亮LED的位号 | 0.0 - 0.4 | 无 | 0.4 - 1.25 | LD2 | 1.25 - 2.0 | LD2 + LD3 | 2.0 - 2.8 | LD2 + LD3 + LD4 | 2.8 - 3.3 | LD2 + LD3 + LD4 + LD5 |
2. 软件说明 此应用程序既没有使用STM8S系列/ STM8L系列标准库,也没有使用STM8触摸传感器库。本应用程序中使用的外围设备是: • ADC:电压采集。需要配置为: - 单一转换模式。 - 由TIM1 TRGO外部触发。 - 对于STM8L,ADC_clock = Fmaster / 2;对于STM8S,ADC_clock = Fmaster / 8。 - 左对齐结果(否则需要修改软件才能计算平均值) 。 - 对STM8S系列的ADC输入9和STM8L系列的ADC输入3禁用施密特触发器。 • TIM1:定时器TIM1在此应用中有两个目的: - 当计数器值达到CCR1(捕获/比较中断)时,唤醒ADC进行转换。此操作对于在转换之前允许ADC稳定时间非常有用。 - 发送转换触发信号以在计数器值达到TIM1_ARR时启动ADC转换。 注意:通过这两个事件,用户可以轻松管理ADC唤醒和转换时序。本例中,TIM1必须在PC1上配置compare-OC1REF触发输出和 PWM1模式(负极性):用于测试目的(准确测量稳定时间)。 • GPIO:配置PB0、PB1、PB2和PB3在推挽模式,以控制指示灯LD2、LD3、LD4和LD5。
ADC采集原理在下面的列表中进行描述,并在后面的图中列出来。 1. TIM1配置为向上计数计数器。 2. 当发生比较/捕获中断时,ADC被唤醒进行转换(ADC转换之前会考虑ADC的稳定时间)。 3. 在TIM1 TRGO上,ADC开始转换。 4. 转换完成后,结果存储在RAM中,ADC关闭,直到下一次比较/捕获中断。 5. 当存储了八个转换结果时,主程序计算这些结果的平均值,然后将该值显示在LED灯条上。 图3. ADC采集原理
2.1 应用软件流程图 本节包含主循环流程图、ADC中断函数流程图和TIM1捕获/比较中断流程图。 2.1.1 主循环流程图 图5. 主循环流程图
2.1.2 ADC中断程序 当ADC1完成一次模数转换时,会发生该中断。每次发生中断时,转换结果存储在一个名为AD的表中。当此表已满时,变量ADSampRdy设置为1,并且AD表由主程序处理(它计算存储值的平均值)。 在中断例程结束时ADC切换为关闭状态。 注意:只有在主函数处理完上一个AD表时,才会存储结果。 图6. ADC EOC中断流程图
2.1.3 TIM1捕获/比较中断 每次TIM1计数器值等于比较寄存器值CCR1时,都会发生此中断。在中断过程中,通过设置CR1寄存器的ADON位触发转换。 图7. TIM1捕获/比较流程图
3. 修订历史记录表 表3. 文档修订历史记录 日期 | 版本 | 更改内容 | 2018年6月29日 | 1 | 首次发布。 |
|