0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AB32VG1开发板的设备温度检测

jf_13982707 来源:jf_13982707 作者:jf_13982707 2022-02-18 11:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

基于RT-Thread 的Sensor框架对应的软件包max6675,通过AB32VG1开发板模拟spi驱动,读取热电偶传感器的数据,并通过串口输出,到串口屏显示图形。

非常感谢这次大赛主办方睿赛德,中科蓝讯,elecfan,为我们提供了很好的软件硬件平台,学习到基于嵌入式系统开发技术,提升一下技能,为今后的工作积累经验。同时深深感受到,我们国产软件硬件系统在崛起了!

AB32VG1开发板,用GPIO模拟spi接口,接到温度传感器模块

温度传感器模块MAX6675,采用spi数据接口和开发板通讯,三根信号线so,cs,sck分别接到MISO,CS,SCLK,电源VCC,GND,+,-接到热电偶传感器

串口屏(构成:TFT显示屏,spi接口连接到ESP32开发板),通过串口连接到AB32VG1,接收并图形化显示传感器数据图表

1、软件构成:rtthread开发环境,sensor软件包,max6675软件包,Arduino编译器,littleVGL图形界面,vscode编辑器。

2、驱动:rtthread硬件设备驱动框架,rtthread硬件管理系统,spi驱动,uart模块,msh模块,downloader下载器

3、线程:rtthread线程保障实时传感器数据采集,信号量实现同步串口发送数据,互斥量保护传感器数据集正确性

4、spi接口说明:非常感谢大神提供的drvsoftspi,让AB32VG1实现可以定制gpio为spi接口,

通过SOFT_SPI1_BUS_CONFIG结构体,设置miso=10,mosi=8,sck=9,将相应编号的io点连线到传感器模块的so->10,clk->9,cs->19,板级初始化 实现spi0设备总线,

max6675_init(const char *spi_device_name)中rt_soft_spi_device_attach("spi0","spi10",RT_NULL,19)将传感器设备挂载到spi0总线,片选cs=19,成为设备spi10,

rt_spi_configure(dev->spi, &cfg); //配置传输模式,设置spi10设备读写时序逻辑,cpol=1,cpha=0,datawidth=16。

5、代码仓库:https://gitee.com/alphasu1109/max6675_temp

基于AB32VG1开发板的设备温度检测
基于AB32VG1开发板的设备温度检测

数据显示线程,1秒定时,周期性读取sensor数据,存入全局变量temp1,释放信号量rxsem,同步串口发送数据

if (sensor_data.data.temp >= 0)

{

rt_kprintf("temp:%3d.%dC, timestamp:%5d\n",

sensor_data.data.temp / 100,

sensor_data.data.temp % 100,

sensor_data.timestamp);

}

else

{

rt_kprintf("temp:-%2d.%dC, timestamp:%5d\n",

abs(sensor_data.data.temp / 100),

abs(sensor_data.data.temp % 100),

sensor_data.timestamp);

}

temp1=sensor_data.data.temp;

//temp1=5;

rt_sem_release(&rx_sem);

遇到的坑:1,找不到max6675_read_temp(),原因是drvsoftspi.c没有被编译,通过勾选setting组建spi,并修改同级目录中sconscript文件,增加编译条件后解决。

2.挂载以后,通过list_device,能看到spi10,但是读取数据总是0,原因是没有设置时序逻辑,spi初始值datawidth是8,cpol和cpha都是0,经过检查max6675数据手册,重新修改配置后,成功读取数据。

3.include "spi.h" 编译报错,找不到,没有包含在include文件夹内,经过检查"rt_thread/components/drivers/include"文件夹,存在"rtdevice.h"文件,里面含有spi.h加载过程,#ifdef RT_USING_SPI #include "spi.h" #endif, 因此改为#include "rtdevice.h"

1、软件构成:rtthread开发环境,sensor软件包,max6675软件包,Arduino编译器,littleVGL图形界面,vscode编辑器。

2、驱动:rtthread硬件设备驱动框架,rtthread硬件管理系统,spi驱动,uart模块,msh模块,downloader下载器

3、线程:rtthread线程保障实时传感器数据采集,信号量实现同步串口发送数据,互斥量保护传感器数据集正确性

4、spi接口说明:非常感谢大神提供的drvsoftspi,让AB32VG1实现可以定制gpio为spi接口,

通过SOFT_SPI1_BUS_CONFIG结构体,设置miso=10,mosi=8,sck=9,将相应编号的io点连线到传感器模块的so->10,clk->9,cs->19,板级初始化 实现spi0设备总线,

max6675_init(const char *spi_device_name)中rt_soft_spi_device_attach("spi0","spi10",RT_NULL,19)将传感器设备挂载到spi0总线,片选cs=19,成为设备spi10,

rt_spi_configure(dev->spi, &cfg); //配置传输模式,设置spi10设备读写时序逻辑,cpol=1,cpha=0,datawidth=16。

5、代码仓库:https://gitee.com/alphasu1109/max6675_temp

基于AB32VG1开发板的设备温度检测
基于AB32VG1开发板的设备温度检测

数据显示线程,1秒定时,周期性读取sensor数据,存入全局变量temp1,释放信号量rxsem,同步串口发送数据

if (sensor_data.data.temp >= 0)

{

rt_kprintf("temp:%3d.%dC, timestamp:%5d\n",

sensor_data.data.temp / 100,

sensor_data.data.temp % 100,

sensor_data.timestamp);

}

else

{

rt_kprintf("temp:-%2d.%dC, timestamp:%5d\n",

abs(sensor_data.data.temp / 100),

abs(sensor_data.data.temp % 100),

sensor_data.timestamp);

}

temp1=sensor_data.data.temp;

//temp1=5;

rt_sem_release(&rx_sem);

遇到的坑:1,找不到max6675_read_temp(),原因是drvsoftspi.c没有被编译,通过勾选setting组建spi,并修改同级目录中sconscript文件,增加编译条件后解决。

2.挂载以后,通过list_device,能看到spi10,但是读取数据总是0,原因是没有设置时序逻辑,spi初始值datawidth是8,cpol和cpha都是0,经过检查max6675数据手册,重新修改配置后,成功读取数据。

3.include "spi.h" 编译报错,找不到,没有包含在include文件夹内,经过检查"rt_thread/components/drivers/include"文件夹,存在"rtdevice.h"文件,里面含有spi.h加载过程,#ifdef RT_USING_SPI #include "spi.h" #endif, 因此改为#include "rtdevice.h"

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 设备
    +关注

    关注

    2

    文章

    4783

    浏览量

    73285
  • 检测
    +关注

    关注

    5

    文章

    4785

    浏览量

    93781
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113324
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【上海晶珩睿莓1开发板试用体验】GPIO事件监控&USB asound声卡设备录入声音并通过云平台识别

    : 使用 arecord -l命令来查看连接到睿莓1开发板的USB声卡设备(pcm): 可以看出,USB声卡对应的设备就是hw:1
    发表于 09-09 18:28

    Comake D1 开发板 快速开始

    本文档介绍了COMAKEPID1开发板的快速入门指南,包括硬件连接、AlkaidSDK环境搭建和示例程序开发。该开发板基于Pcupid系列SoC芯片,支持丰富的外设功能,适用于智能音频
    的头像 发表于 08-25 15:49 565次阅读
    Comake D<b class='flag-5'>1</b> <b class='flag-5'>开发板</b> 快速开始

    ESP32开发板元件资料

    ESP32开发板元件
    发表于 07-21 14:47 14次下载

    【RA4L1-SENSOR】+ RA4L1-SENSOR开发板之读取RA4L1 Sensor开发板芯片温度

    RA4L1-SENSOR开发板温度值,断码屏显示 串口助手显示 RA4L1-SENSOR开发板上面是有个内部
    发表于 06-13 15:29

    有ARM,NPU,FPGA三种核心的开发板 — 米尔安路飞龙派开发板

    ,是A股首家专注于FPGA业务的上市公司。YM90X开发板用的就是安路的SALDRAGON1(飞龙1,以下简称DR1)系列FPSoC。FPSoC就是将ARM、NPU和
    的头像 发表于 06-13 08:03 1358次阅读
    有ARM,NPU,FPGA三种核心的<b class='flag-5'>开发板</b> — 米尔安路飞龙派<b class='flag-5'>开发板</b>

    【新品】远距离图传数传模块开发板、蓝牙模块开发板、无线模块开发板

    新品上市图传数传模块开发板蓝牙模块开发板国产无线模块开发板部分型号参与送样文末了解详情↓↓↓EWT611-900NW20S远距离图传数传模块开发板EWT611-900NW20S是一款入
    的头像 发表于 06-12 19:33 896次阅读
    【新品】远距离图传数传模块<b class='flag-5'>开发板</b>、蓝牙模块<b class='flag-5'>开发板</b>、无线模块<b class='flag-5'>开发板</b>

    基于RK3576开发板的人员检测算法

    展示了RK3576开发板的人员检测算法例程及API说明
    的头像 发表于 05-07 17:33 652次阅读
    基于RK3576<b class='flag-5'>开发板</b>的人员<b class='flag-5'>检测</b>算法

    如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板

    本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXPi.MX93开发板)的基于OpenCV的人脸检测方案测试。OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置
    的头像 发表于 04-15 11:51 640次阅读
    如何用OpenCV的相机捕捉视频进行人脸<b class='flag-5'>检测</b>--基于米尔NXP i.MX93<b class='flag-5'>开发板</b>

    Linux开发板CAN总线测试方法,触觉智能RK3568开发板演示

    本文介绍Linux开发板CAN总线测试方法,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0
    的头像 发表于 04-11 19:14 919次阅读
    Linux<b class='flag-5'>开发板</b>CAN总线测试方法,触觉智能RK3568<b class='flag-5'>开发板</b>演示

    OpenCV行人检测应用方案--基于米尔全志T527开发板

    本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV行人检测方案测试。摘自优秀创作者-小火苗一、软件环境安装1.安装
    的头像 发表于 04-10 08:03 1099次阅读
    OpenCV行人<b class='flag-5'>检测</b>应用方案--基于米尔全志T527<b class='flag-5'>开发板</b>

    雷卯收集云终端开发板

    收集云终端开发板明细如下: 如下是云终端开发板介绍: 云终端是一种依托于云计算技术的终端设备,它利用虚拟化技术,将计算和存储资源集中于云端服务器,终端设备仅需处理显示和输入。 云终端的
    的头像 发表于 04-02 11:15 410次阅读
    雷卯收集云终端<b class='flag-5'>开发板</b>

    【技术分享】迅为RK3568开发板使用TFTP加载内核设备

    【技术分享】迅为RK3568开发板使用TFTP加载内核设备
    的头像 发表于 02-21 14:04 1122次阅读
    【技术分享】迅为RK3568<b class='flag-5'>开发板</b>使用TFTP加载内核<b class='flag-5'>设备</b>树

    迅为RK3568开发板驱动指南Linux中通用SPI设备驱动

    迅为RK3568开发板驱动指南Linux中通用SPI设备驱动
    的头像 发表于 01-23 11:02 3427次阅读
    迅为RK3568<b class='flag-5'>开发板</b>驱动指南Linux中通用SPI<b class='flag-5'>设备</b>驱动

    人脸疲劳检测应用-米尔基于RK3576核心/开发板

    本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微RK3576开发板)的人脸疲劳检测方案测试。米尔基于RK3576核心/开发板
    的头像 发表于 12-20 08:06 1359次阅读
    人脸疲劳<b class='flag-5'>检测</b>应用-米尔基于RK3576核心<b class='flag-5'>板</b>/<b class='flag-5'>开发板</b>

    VMware环境下,同时烧录固件检测不到设备如何解决?触觉智能鸿蒙开发板演示

    本文介绍PC电脑端运行VMware环境下,同时烧录固件检测不到设备的解决方法。触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566芯片,类树莓派设计,Laval官方社区主荐,已适配全新OpenHarmony5
    的头像 发表于 12-19 09:36 1126次阅读
    VMware环境下,同时烧录固件<b class='flag-5'>检测</b>不到<b class='flag-5'>设备</b>如何解决?触觉智能鸿蒙<b class='flag-5'>开发板</b>演示