Timer Capture¶
1 功能概述¶
本例程演示如何使用 TIMER HAL Driver 实现 Timer 的定时捕获功能,外部输入PWM波形,timer可以捕获PWM的高电平和低电平的时间。
2 环境准备¶
硬件设备与线材:
PAN107 EVB 核心板与底板各一块
JLink 仿真器(用于烧录例程程序)
USB-TypeC 线一条(用于底板供电和查看串口打印 Log)
杜邦线数根或跳线帽数个(用于连接各个硬件设备)
硬件接线:
将 EVB 核心板插到底板上
使用 USB-TypeC 线,将 PC USB 插口与 EVB 底板 USB->UART 插口相连
使用杜邦线将 EVB 底板上的 TX 引脚接至核心板 P16,RX 引脚接至核心板 P17
使用杜邦线将 EVB 底板上的P15接至P22
使用杜邦线将 JLink 仿真器的:
SWD_CLK 引脚与 EVB 底板的 P00 排针相连
SWD_DAT 引脚与 EVB 底板的 P01 排针相连
SWD_GND 引脚与 EVB 底板的 GND 排针相连
PC 软件:
串口调试助手(Panchip Serial Assistant ),波特率 921600(用于接收串口打印 Log)
3 编译和烧录¶
例程位置:<PAN10XX-NDK>\01_SDK\nimble\samples\peripheral\timer_basic\keil_107x
双击 Keil Project 文件打开工程进行编译烧录。
4 例程演示说明¶
烧录完成后,芯片会通过串口打印初始化 Log:
Try to load HW calibration data.. DONE. - Chip Info : 0x1 - Chip CP Version : 255 - Chip FT Version : 4 - Chip MAC Address : D0000000059D - Chip UID : 9D0500C2F737560338 - Chip Flash UID : 425031563233391700C2F73756033878 - Chip Flash Size : 512 KB app started APP version: 129.96.18288
P22输出PWM波形,频率时20hz,占空比时30%,代码如下所示:
HAL_PWM_PinConfiguration(P2, 2, PWM_CH0); PWM_InitOpt pwm_init_obj = { .frequency = 20, .dutyCycle = 30, .operateType = OPERATION_EDGE_ALIGNED, .lowPowerEn = DISABLE, };
timer0捕获到的低电平时间和高电平时间打印如下所示:
low level 34761us high level 14998us low level 34999us high level 14998us low level 34999us high level 14998us low level 34999us high level 14998us low level 34999us high level 14998us low level 34999us high level 14998us low level 34999us high level 14998us
高电平时间时是34999us,低电平时间是14998us,这个和PWM输出的波形基本一样。