因为做水质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文件下载之开发板,通过下载工具监控到温度如下所示
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)