文章目录
一、题目
测量脉冲波信号的频率,测量误差不大于 2%,显示精度不低于 1Hz。对脉冲波的占空比进行测量并显示,精度不低于 2%。
二、思路
本文给出的方法主要是测量低频的方法。在测 10 kHz 以下有用。
三、CubeMX 配置
- 时钟配置

- 串口 debug

- IIC

- TIM3


- NVIC 设置

- GPIO 设置

四、代码
变量定义:
/* USER CODE BEGIN PV */
volatile float TIM3CH1_Freq = 0.0; // 频率
volatile float TIM3CH1_Duty = 0.0; // 占空比
volatile int capture_end_flag = 0; //
volatile uint32_t high_val = 0;
volatile uint32_t low_val = 0;
/* USER CODE END PV */
初始化:
/* USER CODE BEGIN 2 */
OLED_Init();
OLED_Clear();
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1); // 开启定时器
OLED_Refresh_Gram();
/* USER CODE END 2 */
主循环:注意,HAL_Delay() 放在循环里可能会造成问题。
/* USER CODE BEGIN WHILE */
while (1)
{
// HAL_Delay(3000);
if<

最低0.47元/天 解锁文章
1700






