標(biāo)題:
stm32讀取MS5837水深度壓力傳感器串口輸出源碼
[打印本頁]
作者:
mmmk
時間:
2018-4-20 11:05
標(biāo)題:
stm32讀取MS5837水深度壓力傳感器串口輸出源碼
STM32讀取MS5837壓力數(shù)據(jù),轉(zhuǎn)化為深度。傳輸方式IIC
單片機源程序如下:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "key.h"
#include "myiic.h"
#include "MS5837.h"
#include "dac.h"
#include "timer.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設(shè)置中斷優(yōu)先級分組2
delay_init(); //延時函數(shù)初始化
uart_init(115200); //串口初始化為115200
LED_Init(); //初始化與LED連接的硬件接口
Dac1_Init();
TIM3_Int_Init(24999, 17279);
delay_ms(1000);
IIC_Init(); //初始化IIC PC11 PC12口子
delay_ms(100);
MS583703BA_RESET(); // Reset Device 復(fù)位MS5837
delay_ms(100); //復(fù)位后延時(注意這個延時是一定必要的,可以縮短但似乎不能少于20ms)
MS5837_init(); //初始化MS5837
while(1)
{
delay_ms(50);
MS583703BA_getTemperature();//獲取溫度
MS583703BA_getPressure(); //獲取大氣壓
printf(" Temp : %llu\r\n",TEMP); //串口輸出原始數(shù)據(jù)
printf(" Pressure : %u\r\n\r\n\r\n",Pressure); //串口輸出原始數(shù)據(jù)
}
}
復(fù)制代碼
所有資料51hei提供下載:
MS5837串口輸出.rar
(282.32 KB, 下載次數(shù): 307)
2018-4-20 16:08 上傳
點擊文件名下載附件
串口輸出
下載積分: 黑幣 -5
作者:
l19951127
時間:
2018-5-16 09:18
謝謝分享
作者:
younico
時間:
2018-11-11 11:16
謝謝分享。
作者:
業(yè)界小生
時間:
2018-11-23 13:23
謝謝分享
作者:
噶哈哈8422
時間:
2018-12-2 19:29
謝謝分享
作者:
ZLB_HHXX
時間:
2019-1-13 23:13
謝謝分享
作者:
ZLB_HHXX
時間:
2019-1-14 11:25
你這個程序編譯ok嗎,我編譯時顯示Dac1_Init 和TIM3_Int_Init undefined?
作者:
136739843
時間:
2019-2-26 10:36
謝謝分享
作者:
sbkd123
時間:
2019-4-28 20:54
謝謝分享
作者:
sbkd123
時間:
2019-4-28 20:55
謝謝大佬分享
作者:
lixuesong
時間:
2019-7-5 16:15
有報錯,看不懂,能麻煩給解釋一下嗎
作者:
liujiaxing
時間:
2019-8-1 09:09
非常感謝您的分享!
作者:
feihuoliuxing
時間:
2019-8-1 14:50
謝謝分享
作者:
我是牛牛
時間:
2019-8-1 16:17
學(xué)習(xí)一波
作者:
牛逼的小菜鳥
時間:
2019-8-2 22:16
哈哈,正在學(xué)習(xí)這一塊
作者:
、。,
時間:
2019-10-3 14:24
TIM3_Int_Init(24999, 17279)
Dac1_Init();
為什么會報錯��?
作者:
prettytank
時間:
2019-10-4 10:37
第一次看到這個傳感器,收藏下
作者:
raojialong111
時間:
2020-1-13 21:00
多謝分享,正在做這方面的開發(fā)
作者:
soulfeng
時間:
2020-2-19 14:44
很不錯,里面的溫度算法有點問題,基準(zhǔn)值是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;
}
作者:
liujuu
時間:
2020-3-16 13:30
感謝分享 就是有錯誤 正在找缺哪個文件
作者:
liujuu
時間:
2020-3-16 13:33
錯誤找到了 // Dac1_Init();
// TIM3_Int_Init(24999, 17279);
把這兩個注釋就好了
這2個函數(shù) 只有聲明和調(diào)用 沒有具體函數(shù);
作者:
liujuu
時間:
2020-3-18 09:53
soulfeng 發(fā)表于 2020-2-19 14:44
很不錯,里面的溫度算法有點問題,基準(zhǔn)值是20度,低于二十度要出錯,要改一下
D2_Temp = MS583703B ...
temp=TEMP/10; 為什么要除以10 沒理解
作者:
hostmkmk@sina.c
時間:
2020-11-22 23:34
這個代碼還是喲問題,應(yīng)該是帶符號的數(shù)值
作者:
henryxue
時間:
2021-10-15 17:31
謝謝分享。各位大神的分析很有啟發(fā),謝謝!
作者:
wwqqqsdf
時間:
2022-4-18 10:43
大哥,你代碼數(shù)據(jù)類型怎么能用uint64/32類型的,溫補小于20度就溢出錯亂了�?孔V點吧
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1