中科蓝讯AB32VG1之DS18B20温度测量

中科蓝讯AB32VG1之DS18B20温度测量,第1张

中科蓝讯AB32VG1之DS18B20温度测量

因为做水质TDS的检测,需要根据当前温度做温度补偿,这里测温用的是DS18B20实现的,所以就用蓝讯AB32VG1开发板PA5引脚进行DS18B20的测温开发。

    新建工程步骤省略,建好工程之后,需要添加DS18B20组件,方法双击打开RT-Thread Settings,如下图所示,点击Add按钮,d出软件包搜索界面,输入DS18B20点击搜索,如下图所示显示1个结果,点击添加即可。


     添加成功以后,返回,然后双击DS18B20软件包,进入软件包配置界面,配置如下图所示。然后保存即可。

配置完成之后,展开packages,可以看到DS18B20的源文件和demo已经存在了,如下图所示。

如果这时候直接编译工程,则会报错,如下

本芯片无PG9引脚,这里需要修改引脚,将代码#define DS18B20_DATA_PIN    GET_PIN(G, 9)改为#define DS18B20_DATA_PIN    GET_PIN(A, 5),因为这里使用的PA5引脚。

另外,删除报错的RT_WEAK void rt_hw_us_delay(rt_uint32_t us)函数(以前SMT32上移植过RTT,用的就是这个延时函数,不知道为何这里报错),同时在board.c中,

void rt_hw_us_delay(rt_uint32_t us)
{
    rt_uint32_t ticks;
            rt_uint32_t told, tnow, tcnt = 0;
            rt_uint32_t reload = TMR0PR;

            ticks = us * reload / (1000);
            told = TMR0CNT;
            while (1)
            {
                tnow = TMR0CNT;
                if (tnow != told)
                {
                    if (tnow > told)
                    {
                        tcnt += tnow - told;
                    }
                    else
                    {
                        tcnt += reload - told + tnow;
                    }
                    told = tnow;
                    if (tcnt >= ticks)
                    {
                        break;
                    }
                }
            }


}

,此时,在编译项目,就会不错了,将生成的dcf文件下载之开发板,通过下载工具监控到温度如下所示

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5503388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存