tp 中的I()方法

tp  中I方法,取义Input,用来获取前台提交的过来的数据
下面我来说I()方法的使用技巧
I('post.name',' ','htmlspecialchars');获取_$POST['name']
I('get.');获取$_GET
详细情况http://www.thinkphp.cn/document/308.html

M()方法
M方法用于实例化一个基础模型类
1.它不需要自定义模型类,减少IO加载,性能较好
2.实例化后只能调用基础模型类,(默认是Model类)中的方法
3.可以在实例化的时候指定表前缀,数据库和数据库的连接信息
M(‘基础模型名称’,‘数据表前缀’,‘数据库连接信息’);
例如$User=M(‘User’,'think_',mysql://user_a:1234sdf/thinkphp);
表示基础模型类用Model,然后对think_user表进行操作,用user_a账号进行数据库连接
操作数据库thinkphp

详细请看http://www.thinkphp.cn/document/123.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux,可以通过编写TP驱动程序来进行I2C设备的读写操作。下面是一个简单的示例代码,演示了如何在TP驱动读写I2C设备: ```c #include <linux/i2c.h> #include <linux/i2c-dev.h> #include <linux/module.h> static struct i2c_client *tp_client; static int tp_read_reg(struct i2c_client *client, u8 reg, u8 *value) { struct i2c_msg msgs[2]; u8 buf[2]; int ret; buf[0] = reg; msgs[0].addr = client->addr; msgs[0].flags = 0; msgs[0].buf = buf; msgs[0].len = 1; msgs[1].addr = client->addr; msgs[1].flags = I2C_M_RD; msgs[1].buf = value; msgs[1].len = 1; ret = i2c_transfer(client->adapter, msgs, 2); if (ret != 2) { pr_err("Failed to read register 0x%02x\n", reg); return ret < 0 ? ret : -EIO; } return 0; } static int tp_write_reg(struct i2c_client *client, u8 reg, u8 value) { struct i2c_msg msg; u8 buf[2]; int ret; buf[0] = reg; buf[1] = value; msg.addr = client->addr; msg.flags = 0; msg.buf = buf; msg.len = 2; ret = i2c_transfer(client->adapter, &msg, 1); if (ret != 1) { pr_err("Failed to write register 0x%02x\n", reg); return ret < 0 ? ret : -EIO; } return 0; } static int __init tp_driver_init(void) { struct i2c_adapter *adapter; struct i2c_board_info board_info; struct i2c_client *client; int ret; // 获取I2C适配器 adapter = i2c_get_adapter(0); if (!adapter) { pr_err("Failed to get I2C adapter\n"); return -ENODEV; } // 填充设备信息 memset(&board_info, 0, sizeof(struct i2c_board_info)); strlcpy(board_info.type, "my_i2c_device", I2C_NAME_SIZE); // 注册I2C设备 client = i2c_new_device(adapter, &board_info); if (!client) { pr_err("Failed to register I2C device\n"); i2c_put_adapter(adapter); return -ENODEV; } // 保存设备指针 tp_client = client; // 读取寄存器示例 u8 reg_value; ret = tp_read_reg(tp_client, 0x00, &reg_value); if (ret) { pr_err("Failed to read register\n"); i2c_unregister_device(tp_client); i2c_put_adapter(adapter); return ret; } // 写入寄存器示例 ret = tp_write_reg(tp_client, 0x01, 0xFF); if (ret) { pr_err("Failed to write register\n"); i2c_unregister_device(tp_client); i2c_put_adapter(adapter); return ret; } return 0; } static void __exit tp_driver_exit(void) { if (tp_client) { i2c_unregister_device(tp_client); i2c_put_adapter(tp_client->adapter); } } module_init(tp_driver_init); module_exit(tp_driver_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Your Name"); MODULE_DESCRIPTION("TP Driver"); ``` 在上述示例代码,我们首先通过`i2c_get_adapter()`函数获取I2C适配器,然后填充设备信息并注册I2C设备。接着,我们可以使用`tp_read_reg()`函数和`tp_write_reg()`函数来读取和写入I2C设备的寄存器。最后,在驱动程序的初始化函数,我们进行了读取和写入寄存器的示例操作。 需要注意的是,上述代码仅为示例,实际应用需要根据具体的硬件和需求进行修改和适配。同时,还需要确保相关的I2C驱动程序已经加载并正确配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值