这个文章主要是解决程序找不到设备的问题。
总结过程:在kconfig文件中添加我们想要使用的设备。之后使用env工具打开该设备,并保存配置到我们的工程中,之后编译工程我们能查找到设备。
1、首先在已有工程文件夹空白处右键conemu here,打开env工具。之后输入命令menuconfig,打开如下界面。选择最下面的硬件驱动配置进入
之后中间一项进入
之后进入如下界面,Y键使能pwm,使能成功变星号
之后继续点击进入如下界面也是Y键使能
继续进入使能
之后保存退出
2、但是如果我们工程里边没有的,比如TIM1-CH1.
打开Kconfig文件
打开后我们看到,参考这个添加我们想要的PWM
把tim1和tim2的4个通道都加入了
cnv工具再次打开我们的硬件驱动界面,进入PWM界面看到新增的timer1的PWM
Y键使能进入,能看到我们加入的通道出现了
Y键使能我们想要使用的通道即可。之后save。
使用如下命令,将改动更新到mdk工程中去
此时在我们的工程中的rtconfig.h中能看到我们刚才的操作,多了如下的东西
3、
编译工程报错了,
,在这个文件里照葫芦画瓢添加了tim1的
4、试试新添加的tim1-ch3.
定义如下:
#define PWM_DEV_NAME "pwm1"
#define PWM_DEV_CHANNEL 3
struct rt_device_pwm *pwm_dev;
查找设备语句如下
rt_uint32_t period, pulse, dir;
period = 500000;
pulse = 0;
pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME);
if (pwm_dev == RT_NULL)
{
rt_kprintf("pwm sample run failed! can't find %s device!\n", PWM_DEV_NAME);
}
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);
仿真,未执行划线语句,证明配置成功了。
当然这个前提是硬件配置已经使用cube配置过了