适配1820传感,有没有delay(1)延时1us的实现参考
Posted: 2024年 Mar 13日 10:11
TLSR8258_TuyaOS-3.8.0,基于tuyaos_demo_meter_socket_tl开发包,想要接1820温度传感,请问有没有delay(1)延时1us的实现参考,
TLSR8258_TuyaOS-3.8.0,基于tuyaos_demo_meter_socket_tl开发包,想要接1820温度传感,请问有没有delay(1)延时1us的实现参考,
Code: Select all
TUYA_TIMER_BASE_CFG_T cfg;
cfg.mode = TUYA_TIMER_MODE_PERIOD;
cfg.cb = hw_timer_zll_scan_key_deal_handler;
cfg.args = NULL;
tkl_timer_init(TUYA_TIMER_NUM_0,&cfg);
tkl_timer_start(TUYA_TIMER_NUM_0, 1000);
1.你好,你可以使用 tkl_timer 相关函数
2.请注意如果使能了上述函数,休眠设备将不会进入休眠,需要调用 tkl_timer_stop 后方能进入休眠
好的谢谢,在适配过程中,使用tal_gpio_init接口进行初始化时,发现初始化完成需要30多us的时间,导致不能正常读取到ds18b20的数据,请问这里是什么原因,消耗了这么长时间
1.请说明下,tal_gpio_init和读取不到ds18b20有什么关系?
2.tal_gpio_init是配置输入输出,上下拉等操作
执行以下的步骤:
for (i = 0; i < 8; i++) {
1. 下拉输出初始化;
2.上拉输入初始化
if (DS18B20_READ()) { //读取电平
data |= 0x80;
}
Code: Select all
}
TUYA_GPIO_BASE_CFG_T sel_gpio_cfg = {0};
Code: Select all
if(FALSE == in)
{
sel_gpio_cfg.direct = TUYA_GPIO_OUTPUT;
if(high)
{
sel_gpio_cfg.mode = TUYA_GPIO_PULLDOWN;
sel_gpio_cfg.level = TUYA_GPIO_LEVEL_LOW;
}else{
sel_gpio_cfg.mode = TUYA_GPIO_PULLUP;
sel_gpio_cfg.level = TUYA_GPIO_LEVEL_HIGH;
}
}else{
sel_gpio_cfg.direct = TUYA_GPIO_INPUT;
if(high)
{
sel_gpio_cfg.mode = TUYA_GPIO_PULLDOWN;
}else{
sel_gpio_cfg.mode = TUYA_GPIO_PULLUP;
}
}
tal_gpio_init(TUYA_GPIO_NUM_13, &sel_gpio_cfg);
初始化时间很长,测试需要30us左右
那你自己调用drv 层原厂驱动函数实现你需要的功能
好的谢谢 我试试