子系统分析
其他网址
从零开始之驱动发开、linux驱动(三十三、PWM子系统)
Linux系统PWM驱动
测试驱动
参考网址:Linux - PWM的驱动编写【转】
pwm_config函数有三个参数,第一个是当前设置的pwm设备,第二个和第三个分别是占空比与周期。
占空比与周期的单位均是ns,
其中5000000ns即表示5ms,说明一个波形的周期是5ms
#include <linux/module.h>
#include <linux/miscdevice.h>
#include <linux/fs.h>
#include <linux/mutex.h>
#include <linux/pwm.h>
#include <linux/delay.h> /* for mdelay() */
#include <linux/proc_fs.h>
#include <asm/uaccess.h>
#include <asm/io.h>
static int __init pwm_init(void)
{
struct pwm_device * pwm7 = NULL;
//申请pwm设备函数,前面是pwm几,后面是给他的简称
pwm7 = pwm_request(7, "pwm7");
if(IS_ERR(pwm7))
printk("request pwm7 err %ld\n", PTR_ERR(pwm7));
else
printk("request pwm7 success\n");
pwm_config(pwm7, 100, 500);
pwm_enable(pwm7);
return 0;
}
static void __exit pwm_exit(void)
{
printk("%s\n", __func__);
}
module_init(pwm_init);
module_exit(pwm_exit);
MODULE_DESCRIPTION("PWM Driver");
MODULE_LICENSE("GPL v2");