1、已经勾上WDT
2、使能狗
3、编译通过
4、烧录进去了
5、启动了,狗没咬人?
大神们,是不是我哪里还没设置?
查看更多
这个是驱动有了,当时并没有启动。
参考这个看门狗设备使用示例
cubeMX生成初始化码粘贴到Board.c文件里
看官方文档有例子, 要在主程序里启动和设置超时时间,喂狗
上面步骤能正常看到设置成功了,但是main函数里面进行rt_device_find(“wdt”)的时候得到NULL…
这个可能因为 查找的名字不对,list_device 看一下注册的看门狗名字叫什么? iwg?名字错了的话是肯定查不到的
/* 根据设备名称查找看门狗设备,获取设备句柄 */ wdg_dev = rt_device_find(device_name); if (!wdg_dev) { rt_kprintf("find %s failed!\n", device_name); return RT_ERROR; } /* 设置看门狗溢出时间 */ ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout); if (ret != RT_EOK) { rt_kprintf("set %s timeout failed!\n", device_name); return RT_ERROR; } /* 启动看门狗 */ ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_START, RT_NULL); if (ret != RT_EOK) { rt_kprintf("start %s failed!\n", device_name); return -RT_ERROR; }
/* 根据设备名称查找看门狗设备,获取设备句柄 */
wdg_dev = rt_device_find(device_name);
if (!wdg_dev)
{
rt_kprintf("find %s failed!\n", device_name);
return RT_ERROR;
}
/* 设置看门狗溢出时间 */
ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_SET_TIMEOUT, &timeout);
if (ret != RT_EOK)
rt_kprintf("set %s timeout failed!\n", device_name);
/* 启动看门狗 */
ret = rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_START, RT_NULL);
rt_kprintf("start %s failed!\n", device_name);
return -RT_ERROR;
欢迎发表与嵌入式相关的技术分享、开发技巧、工具介绍、技术设想、职业心得、行业评论等对他人有启发,排版优雅的文章
回到 顶部
发布 问题
分享 好友
手机 浏览
投诉 建议
回到 底部
rt_device_find(“wdt”)是null,但是DEBUG的时候是看着它初始化完成的…..
找了一圈,最后还是回到这里了
@CONMI 你好我想问一下f103c8t6跑标准版rtt内存够用吗