将tiny4412的开发板外接人体感应传感器
1.先读懂传感器的电器特性,以及引脚的功能。
一般会有三个引脚, 接地 5V电压 以及输出信号(OUT)
2.链接好引脚到开发板上,一般OUT链接开发板的引脚时注意查看芯片手册。
比如说链接到GPA0(3)引脚上 就得设置GPA0(3)的引脚功能,用GPIO的宏实现,不用对具体的寄存器引脚进行操作。
3.因为传感器的输出信号是3.3V,所以得外接电平转换信号进行转换,转换成1.8V的输出信号链接到开发板。
电平转换芯片的使用。
4.电路链接好后开始写驱动程序,先写GPIO框架(想伸手的留言,或请看驱动之GPIO子系统),在设置引脚为输如功能,在函数集中定义open一个操作函数就行。
这是我写的程序:
static ssize_t demo_read(struct file *filp, char __user *buf, size_t cnt, loff_t *fops)
40 {
41 int ctu;
42 char buf_n[8] = {"copy cg"};//没用我用来测试用的
43 int gv = 0;
44 gv = gpio_get_value(leds[0]);//得到人体感应器的值
45 //itoa(gv, buf_n);(char)(gc)
46 buf_n[0] = gv + '0'; //将得到的引脚信号的int值转换成char型
47
48 if((ctu = copy_to_user(buf,buf_n,cnt)) < 0){ //将得到的信号值拷贝到用户空间
49 printk("copy_to_user ctu = %d\n",ctu); //打印调试信息
50 return ctu;
51 }
52
53 /*if(gv == 0)//没用,本人调试用的。
54 {
55
56 }*/
57 return gv;
58 }
5.然后就自己写APP.C
先open, 再read 读的值就是传感器的输出信号。