基于STM32的ADS1230驅動例程

自己在練手項目中用到了ADS1230,根據芯片手冊自寫的驅動代碼,已測可用,希望對將要用到ADS1230芯片的人有所幫助。

芯片:STM32系列任意芯片、ADS1230

環境:使用STM32CubeMX配置引腳、KEIL

部分電路:

代碼:

ads1230.h

#ifndef __ADS1230_H__
#define __ADS1230_H__#include "gpio.h"// 移植時改為對應引腳即可
// 控制AD開關 (PDWN引腳)              
#define AD_ON()                 HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET)               
#define AD_OFF()                HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_RESET)// 控制數據傳輸速率(SPEED引腳)
#define AD_SPEED_H()			HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET)
#define AD_SPEED_L()			HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET)// 控制時鐘信號(SCLK引腳)
#define ADS1_CLK_H()             HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3,GPIO_PIN_SET)
#define ADS1_CLK_L()             HAL_GPIO_WritePin(GPIOB,GPIO_PIN_3,GPIO_PIN_RESET)// 讀一位數據(DOUT引腳)
#define ADS1_RD_DATA             HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_4)// 獲取當前mv值
void readADS1230(double* signal_mv); #endif

?ads1230.c

#include "ads1230.h"
#include "main.h"
void readADS1230(double* signal_mv)
{int ADdatatemp1=0;                      uint8_t mv1_flag = 0 ;     // 用來判斷正負的標志位while(ADS1_RD_DATA);       // 等待數據準備好for(uint8_t i = 0;i < 20;i ++)    // 讀取20位數據        {ADdatatemp1 = ADdatatemp1 << 1;ADS1_CLK_H();          // 發送一個時鐘信號ADS1_CLK_L();	if( i == 0 )           // 讀第一位數據,判斷正負{if(ADS1_RD_DATA)                     {ADdatatemp1 ++;mv1_flag++;}ADdatatemp1 = ADdatatemp1 << 11;}else{if(mv1_flag){if(!ADS1_RD_DATA)                    {ADdatatemp1 ++;}}else{if(ADS1_RD_DATA)                    {ADdatatemp1 ++;}}	}}    if(!mv1_flag)ADdatatemp1++;    // 負數最后要加1for(uint8_t i=0;i<6;i++)       // 額外發送6個時鐘信號用來校準{ADS1_CLK_H();ADS1_CLK_L();}*signal_mv =( 19.53125f / 524287.0f )*ADdatatemp1;    // 計算mv值return;
}

使用方法:

// 設置傳輸速率,AD_SPEED_H()快;AD_SPEED_L()慢
AD_SPEED_H(); // 啟動AD轉換
AD_ON(); // 讀取mv值
double signal_mv = 0.00f;
while(1)
{readADS1230(&signal_mv);// printf("-- 當前mv值 %.4f --\n",signal_mv);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895295.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895295.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895295.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

游戲引擎學習第98天

倉庫:https://gitee.com/mrxiao_com/2d_game_2 開始進行一點回顧 今天的目標是繼續實現正常貼圖的操作&#xff0c;盡管目前我們還沒有足夠的光照信息來使其完全有用。昨日完成了正常貼圖相關的基礎工作&#xff0c;接下來將集中精力實現正常貼圖的基本操作&#xff0c;并準備…

Windows 本地部署大模型 OpenWebUI+Ollama

安裝Ollama Ollama官方網址&#xff1a;https://ollama.com 下載運行大模型 在Ollama官網中查看需要下載的大模型 https://ollama.com/library 復制圖片中的鏈接 打開cmd&#xff0c;運行此命令&#xff08;此過程會時間會很久&#xff09; 下載Miniconda Miniconda作用是…

C# 數據驗證Regex

Regular Expression&#xff0c;簡稱 Regex,是一種用于匹配和處理文本的強大工具。它通過定義特定的模式&#xff0c;可以用來搜索、替換或提取字符串中的特定內容。 先引入命名空間 using System.Text.RegularExpressions; Intege(整數) 必須是正整數 //必須是正整數publi…

npm運行Vue項目報錯 error:0308010c:digital envelope routines::unsupported

大家好&#xff0c;我是 程序員碼遞夫。 問題 VSCode 運行Vue項目&#xff0c;提示錯誤&#xff1a; building 2/2 modules 0 activeError: error:0308010c:digital envelope routines::unsupported 解決方法 原因是 npm 高版本(大于17)&#xff0c;對ssl的處理做了改進&…

DeepSeek-R1技術革命:用強化學習重塑大語言模型的推理能力

引言&#xff1a;低成本高性能的AI新范式 在2025年1月&#xff0c;中國AI公司DeepSeek發布了兩個標志性模型——DeepSeek-R1-Zero與DeepSeek-R1&#xff0c;以僅600萬美元的訓練成本實現了與OpenAI O1系列&#xff08;開發成本約5億美元&#xff09;相當的推理性能&#xff0c…

【知識科普】CPU,GPN,NPU知識普及

CPU,GPU,NPU CPU、GPU、NPU 詳解1. CPU&#xff08;中央處理器&#xff09;2. GPU&#xff08;圖形處理器&#xff09;3. NPU&#xff08;神經網絡處理器&#xff09; **三者的核心區別****協同工作示例****總結** CPU、GPU、NPU 詳解 1. CPU&#xff08;中央處理器&#xff0…

安川伺服控制器MP系列優勢特點及行業應用

在工業自動化領域&#xff0c;運動控制器的性能直接決定了設備的精度、效率和可靠性。作為全球領先的運動控制品牌&#xff0c;安川電機伺服控制器憑借其卓越的技術優勢和廣泛的應用場景&#xff0c;正在為智能制造注入強勁動力&#xff01; MP3100&#xff1a;主板型運動控制…

深入探索現代CSS:從基礎到未來趨勢

引言&#xff1a;CSS的進化之路 CSS&#xff08;層疊樣式表&#xff09;自1996年誕生以來&#xff0c;已從簡單的樣式描述語言發展為構建現代Web體驗的核心技術。截至2023年&#xff0c;超過98%的網站使用CSS3技術&#xff0c;其發展歷程見證了Web從靜態文檔到富交互應用的蛻變…

Python----PyQt開發(PyQt高級:圖像顯示,定時器,進度條)

一、圖像顯示 1.1、增加圖標 1.直接創建setWindowIcon(QIcon(燈泡.jpg)) import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton from PyQt5.QtGui import QIconclass MainWindow(QMainWindow):def __init__(self):super(MainWindow, self).__init_…

工業路由器物聯網應用,智慧環保環境數據監測

在智慧環保環境數據監測中工業路由器能連接各類分散的傳感器&#xff0c;實現多源環境數據集中采集&#xff0c;并通過多種通信網絡穩定傳輸至數據中心或云平臺。 工作人員借助工業路由器可遠程監控設備狀態與環境數據&#xff0c;還能遠程配置傳感器參數。遠程控制設置數據閾…

【DeepSeek】在本地計算機上部署DeepSeek-R1大模型實戰(完整版)

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?人工智能與大模型應用 ? ? ? 人工智能&#xff08;AI&#xff09;通過算法模擬人類智能&#xff0c;利用機器學習、深度學習等技術驅動醫療、金融等領域的智能化。大模型是千億參數的深度神經網絡&#xff08;如ChatGPT&…

JAVA并發編程3--多線程程序

? 1.創建線程的方法&#xff1a; 案例&#xff1a;計算1-1000的整數和 實現Runnable接口 步驟&#xff1a; 1.創建一個實現了Runnable接口的類 2.實現類去實現Runnable中的抽象方法&#xff1a;run() 3.創建實現類的對象 4.將此對象作為參數傳遞到Thread類的構造器中&#…

django中間件,中間件給下面傳值

1、新建middleware.py文件 # myapp/middleware.py import time from django.http import HttpRequest import json from django.http import JsonResponse import urllib.parse class RequestTimeMiddleware:def __init__(self, get_response):self.get_response get_respons…

Vision Transformer:打破CNN壟斷,全局注意力機制重塑計算機視覺范式

目錄 引言 一、ViT模型的起源和歷史 二、什么是ViT&#xff1f; 圖像處理流程 圖像切分 展平與線性映射 位置編碼 Transformer編碼器 分類頭&#xff08;Classification Head&#xff09; 自注意力機制 注意力圖 三、Coovally AI模型訓練與應用平臺 四、ViT與圖像…

深入淺出:探索 DeepSeek 的強大功能與應用

深入淺出&#xff1a;探索 DeepSeek 的強大功能與應用 在人工智能技術飛速發展的今天&#xff0c;自然語言處理&#xff08;NLP&#xff09;作為其重要分支&#xff0c;正逐漸滲透到我們生活的方方面面。DeepSeek 作為一款功能強大的 NLP 工具&#xff0c;憑借其易用性和高效性…

為AI聊天工具添加一個知識系統 之97 詳細設計之38 Token 之3 前端開發

本文要點 要點 本項目&#xff08;為使用各種聊天工具的聊天者 加掛一個知識系統&#xff09;前端 的用戶界面上 主要 有 知識圖譜、認知地圖和語義網絡&#xff0c;和 聊天工具的chat嵌入 同時還必須有知識樹 成熟的果實&#xff08;對外的網頁 ) 以及 組建和參與利益相關組…

輪子項目--消息隊列的實現(3)

上一篇文章中我把一些關鍵的類以及表示出來&#xff0c;如何對這些類對應的對象進行管理呢&#xff1f;管理分為硬盤和內存上&#xff0c;硬盤又分為數據庫&#xff08;管理交換機&#xff0c;隊列和綁定&#xff09;和文件&#xff08;管理消息&#xff09;&#xff0c;本文就…

Svelte前端框架

Svelte 簡介 Svelte 是一個現代的前端框架&#xff0c;用于構建高效、響應式的用戶界面。與 React、Vue 和 Angular 等傳統框架不同&#xff0c;Svelte 在構建時將組件編譯為高效的純 JavaScript 代碼&#xff0c;而不是在瀏覽器中運行一個龐大的運行時庫。這使得 Svelte 應用具…

【轉載】開源鴻蒙OpenHarmony社區運營報告(2025年1月)

●截至2025年1月31日&#xff0c;開放原子開源鴻蒙&#xff08;OpenAtom OpenHarmony&#xff0c;簡稱“開源鴻蒙”或“OpenHarmony”&#xff09;社區累計超過8200名貢獻者&#xff0c;共63家成員單位&#xff0c;產生51.2萬多個PR、2.9萬多個Star、10.5萬多個Fork、68個SIG。…

@SneakyThrows:是Java異常處理的“魔法外掛“,還是隱藏的“定時炸彈“?

引言&#xff1a;當Java的異常機制成為"甜蜜的負擔" Java的檢查型異常&#xff08;Checked Exception&#xff09;設計本意是提升代碼健壯性&#xff0c;但開發者常常陷入兩難&#xff1a; 要么用try-catch層層包裹代碼導致"金字塔噩夢"&#xff0c;要么在…