reihold 发表于 2021-11-21 15:53:25

pwm无法输出我预期的频率( 设定38khz, 输出2khz)

我是刚入门的新手,正打算移植一个红外遥控器库到k210上. 使用的是C语言开发, 后面打算添加到maixpy中.
我的pwm配置如下:
```
void irsend_enableIROut(double khz, double duty) {
// 设置pwm功能的输出引脚为 PWM_IO_OUT
// timer_toggle从1开始算, toggle2对应定时器的timer_channal1
fpioa_set_function(PWM_IO_OUT, FUNC_TIMER0_TOGGLE2);

// 初始化pwm0
pwm_init(PWM_DEVICE_0);

// 设置pwm的频率和占空比
int fre = pwm_set_frequency(PWM_DEVICE_0, PWM_CHANNEL_1, 38000, duty);
char str;
itoa(fre, str, 10);
uart_send_data(UART_DEVICE_3, str, strlen(str));
uart_send_data(UART_DEVICE_3, "\n", 1);
}

```

!(https://imagemc.dfrobot.com.cn/data/attachment/album/202111/21/155117eittstledih5mhfw.jpg)

串口的打印输出是38000, 也就是38khz, 但是我用逻辑分析仪测试后发现只输出了2kh的pwm波.


我又测试了频率为2khz以下pwm波, 都能正确输出.

所以我猜测k210 pwm的最高频率是否是只能达到2khz?

有人清楚这个问题吗? 不胜感激!!!      : )

reihold 发表于 2021-11-21 15:57:46

开发环境: kendryte ide
板卡:speedmaix dock M1W

anydy 发表于 2021-11-21 17:28:47

你是用显波器冫

reihold 发表于 2021-11-21 22:48:56

anydy 发表于 2021-11-21 17:28
你是用显波器冫

用的逻辑分析仪

reihold 发表于 2022-5-5 08:38:02

已解决,是我的软件采样率设置不够高,导致没办法采集出来。
用的pulseview软件,设置的参数如图所示。主要是采样率得设置成38khz以上
页: [1]
查看完整版本: pwm无法输出我预期的频率( 设定38khz, 输出2khz)