找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10205|回复: 24
收起左侧

stm32读取MS5837水深度压力传感器串口输出源码

  [复制链接]
ID:283363 发表于 2018-4-20 11:05 | 显示全部楼层 |阅读模式
STM32读取MS5837压力数据,转化为深度。传输方式IIC

单片机源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "key.h"  
  6. #include "myiic.h"
  7. #include "MS5837.h"
  8. #include "dac.h"
  9. #include "timer.h"

  10. int main(void)
  11. {

  12.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
  13.         delay_init();                     //延时函数初始化          
  14.         uart_init(115200);         //串口初始化为115200
  15.         LED_Init();                                   //初始化与LED连接的硬件接口
  16.         Dac1_Init();                
  17.   
  18.   TIM3_Int_Init(24999, 17279);
  19.         delay_ms(1000);
  20.         IIC_Init();                 //初始化IIC PC11 PC12口子
  21.         delay_ms(100);
  22.         MS583703BA_RESET();         // Reset Device  复位MS5837
  23.         delay_ms(100);       //复位后延时(注意这个延时是一定必要的,可以缩短但似乎不能少于20ms)
  24.         MS5837_init();             //初始化MS5837
  25.          
  26.         while(1)
  27.         {
  28.                 delay_ms(50);
  29.                
  30.            MS583703BA_getTemperature();//获取温度
  31.                 MS583703BA_getPressure();   //获取大气压
  32.                
  33.                
  34.                 printf("        Temp : %llu\r\n",TEMP);               //串口输出原始数据
  35.                 printf("        Pressure : %u\r\n\r\n\r\n",Pressure); //串口输出原始数据
  36.                

  37.         }
  38.         }

复制代码

所有资料51hei提供下载:
MS5837串口输出.rar (282.32 KB, 下载次数: 307)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:309979 发表于 2018-5-16 09:18 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:345101 发表于 2018-11-11 11:16 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

ID:431769 发表于 2018-11-23 13:23 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:437865 发表于 2018-12-2 19:29 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:467624 发表于 2019-1-13 23:13 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:467624 发表于 2019-1-14 11:25 | 显示全部楼层
你这个程序编译ok吗,我编译时显示Dac1_Init 和TIM3_Int_Init  undefined?
回复

使用道具 举报

ID:480813 发表于 2019-2-26 10:36 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:221656 发表于 2019-4-28 20:54 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:221656 发表于 2019-4-28 20:55 | 显示全部楼层
谢谢大佬分享
回复

使用道具 举报

ID:556572 发表于 2019-7-5 16:15 | 显示全部楼层
有报错,看不懂,能麻烦给解释一下吗
回复

使用道具 举报

ID:593410 发表于 2019-8-1 09:09 | 显示全部楼层
非常感谢您的分享!
回复

使用道具 举报

ID:593603 发表于 2019-8-1 14:50 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:500729 发表于 2019-8-1 16:17 | 显示全部楼层
学习一波
回复

使用道具 举报

ID:435388 发表于 2019-8-2 22:16 来自手机 | 显示全部楼层
哈哈,正在学习这一块
回复

使用道具 举报

ID:618981 发表于 2019-10-3 14:24 | 显示全部楼层
TIM3_Int_Init(24999, 17279)
Dac1_Init();       
为什么会报错啊?
回复

使用道具 举报

ID:302850 发表于 2019-10-4 10:37 来自手机 | 显示全部楼层
第一次看到这个传感器,收藏下
回复

使用道具 举报

ID:506560 发表于 2020-1-13 21:00 | 显示全部楼层
多谢分享,正在做这方面的开发
回复

使用道具 举报

ID:694956 发表于 2020-2-19 14:44 | 显示全部楼层
很不错,里面的温度算法有点问题,基准值是20度,低于二十度要出错,要改一下
        D2_Temp = MS583703BA_getConversion(0x54);
        delay_ms(10);
       
  if(D2_Temp>(((uint32_t)Cal_C[5])*256))
        {
           dT=D2_Temp - (((uint32_t)Cal_C[5])*256);
           TEMP=2000+dT*((uint32_t)Cal_C[6])/8388608;
            temp=TEMP/10;

        }else{
               dT=(((uint32_t)Cal_C[5])*256)-D2_Temp;
               TEMP=2000-dT*((uint32_t)Cal_C[6])/8388608;
               temp=TEMP/10;

             }
回复

使用道具 举报

ID:318415 发表于 2020-3-16 13:30 | 显示全部楼层
感谢分享  就是有错误 正在找缺哪个文件
回复

使用道具 举报

ID:318415 发表于 2020-3-16 13:33 | 显示全部楼层
错误找到了 //        Dac1_Init();                
  
//  TIM3_Int_Init(24999, 17279);   
把这两个注释就好了  
这2个函数 只有声明和调用 没有具体函数;
回复

使用道具 举报

ID:318415 发表于 2020-3-18 09:53 | 显示全部楼层
soulfeng 发表于 2020-2-19 14:44
很不错,里面的温度算法有点问题,基准值是20度,低于二十度要出错,要改一下
        D2_Temp = MS583703B ...

temp=TEMP/10;  为什么要除以10 没理解
回复

使用道具 举报

ID:818186 发表于 2020-11-22 23:34 | 显示全部楼层
这个代码还是哟问题,应该是带符号的数值
回复

使用道具 举报

ID:107741 发表于 2021-10-15 17:31 | 显示全部楼层
谢谢分享。各位大神的分析很有启发,谢谢!
回复

使用道具 举报

ID:1006635 发表于 2022-4-18 10:43 | 显示全部楼层
大哥,你代码数据类型怎么能用uint64/32类型的,温补小于20度就溢出错乱了。靠谱点吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表