【單片機】DS2431,STM32,EEPROM讀取與寫入

芯片介紹: https://qq742971636.blog.csdn.net/article/details/132164189

接線

在這里插入圖片描述

在這里插入圖片描述

串口結果:

在這里插入圖片描述

部分代碼:

#include "sys.h"
#include "DS2431.h"unsigned char	serialNb[8];
unsigned char	write_data[128];
unsigned char	read_data[128];
unsigned char	status;unsigned char	position[5] = { 12, 41, 65, 89, 12 };
unsigned char	position_data[5];int main( void )
{int idx = 0;/* 初始化write_data 裝ascii */for ( idx = 0; idx < 128; idx++ ){write_data[idx] = idx;}Stm32_Clock_Init( 9 );  /* 系統時鐘設置 */uart_init( 72, 9600 );  /* 串口初始化為9600 */delay_init( 72 );       /* 延時初始化 */status = DS2431_Init();printf( "DS2431_Init status: %d\r\n", status );if ( DS2431_ReadRom( serialNb ) == 0 ){printf( "DS2431 found with serial number: %02X %02X %02X %02X %02X %02X %02X %02X\r\n", serialNb[0], serialNb[1],serialNb[2], serialNb[3], serialNb[4], serialNb[5], serialNb[6], serialNb[7] );} else {printf( "DS2431_ReadRom failed,請檢查硬件連線 \r\n" );while ( 1 );}/* Check serial number CRC */if ( crc8( serialNb, 7 ) != serialNb[7] ){printf( "A DS2431 was found but the serial number CRC is invalid.\r\n" );while ( 1 );} else {printf( "CRC8 校驗通過,器件處于正常工作中。 \r\n" );}/* 隨機挑選幾個位置寫入數據0x55 */for ( idx = 0; idx < 5; idx++ ){status = DS2431_WriteByte( position[idx], 0x55 );if ( status == 0 ){printf( "ds2431的第%d個位置寫入成功,寫入數據為0x55。 \r\n", position[idx] );} else {printf( "ds2431的第%d個位置寫入失敗,錯誤碼為%d。 \r\n", position[idx], status );}}/* 讀取這幾個位置的數據 */for ( idx = 0; idx < 5; idx++ ){status = DS2431_ReadByte( position[idx], position_data + idx );if ( status == 0 ){printf( "ds2431的第%d個位置讀取成功,讀取到的數據為0x%02X。 \r\n", position[idx], position_data[idx] );} else {printf( "ds2431的第%d個位置讀取失敗,錯誤碼為%d。 \r\n", position[idx], status );}}delay_ms( 100 );printf( "************************************************ \r\n" );printf( "************************************************ \r\n" );printf( "讀取128個字節中。。。 \r\n" );status = DS2431_ReadMemory( 0, 128, read_data ); /* 從地址0開始讀取,讀取128個字節 *//* 打印出讀取到的數據 */if ( status == 0 ){printf( "讀取到的數據為: \r\n" );for ( idx = 0; idx < 128; idx++ ){printf( "%d ", read_data[idx] );}printf( "\r\n" );} else {printf( "讀取失敗,錯誤碼為%d。 \r\n", status );}/* 清空read_data */for ( idx = 0; idx < 128; idx++ ){read_data[idx] = 0;}delay_ms( 100 );printf( "************************************************ \r\n" );printf( "************************************************ \r\n" );printf( "寫入128個字節中。。。 \r\n" );for ( idx = 0; idx < 16; idx++ ){status = DS2431_WriteMemory( idx, write_data + idx * 8 );if ( status == 0 ){printf( "ds2431的第%d個塊寫入成功,每個塊有8個字節。 \r\n", idx );} else {printf( "ds2431的第%d個塊寫入失敗,錯誤碼為%d。 \r\n", idx, status );}}delay_ms( 100 );printf( "************************************************ \r\n" );printf( "************************************************ \r\n" );printf( "讀取128個字節中。。。 \r\n" );status = DS2431_ReadMemory( 0, 128, read_data ); /* 從地址0開始讀取,讀取128個字節 *//* 打印出讀取到的數據 */if ( status == 0 ){printf( "讀取到的數據為: \r\n" );for ( idx = 0; idx < 128; idx++ ){printf( "%d ", read_data[idx] );}printf( "\r\n" );} else {printf( "讀取失敗,錯誤碼為%d。 \r\n", status );}/* 清空read_data */for ( idx = 0; idx < 128; idx++ ){read_data[idx] = 0;}printf( "************************************************ \r\n" );printf( "************************************************ \r\n" );printf( "程序已經全部演示完畢,如果需要重新演示,請復位。 \r\n" );while ( 1 ){}
}

代碼:https://github.com/xddun/blog_code_search

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

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

相關文章

STM32入門學習之定時器輸入捕獲

1.定時器的輸入捕獲可以用來測量脈沖寬度或者測量頻率。輸入捕獲的原理圖如下&#xff1a; 假設定時器是向上計數。在圖中&#xff0c;t1~t2之間的便是我們要測量的高電平的時間(脈沖寬度)。首先&#xff0c;設置定時器為上升沿捕獲&#xff0c;如此一來&#xff0c;在t1時刻可…

使用Cinemachine制作固定路徑動畫

固定路徑配置 選擇一個游戲對象添加CinemachineSmoothPath腳本選擇添加腳本的對象。路徑腳本需要是展開狀態&#xff0c;才可以看到路徑添加點&#xff0c;使用移動工具&#xff0c;調節路徑 對象在路徑上移動 移動對象添加CinemachineDollyCart腳本設置移動路徑(帶有Path腳…

AI 繪畫Stable Diffusion 研究(九)sd圖生圖功能詳解-老照片高清修復放大

大家好&#xff0c;我是風雨無阻。 通過前面幾篇文章的介紹&#xff0c;相信各位小伙伴&#xff0c;對 Stable Diffusion 這款強大的AI 繪圖系統有了全新的認知。我們見識到了借助 Stable Diffusion的文生圖功能&#xff0c;利用簡單的幾個單詞&#xff0c;就可以生成完美的圖片…

阿里云OSS對象存儲的核心概念與購買應用

文章目錄 1.OSS對象存儲基本介紹1.1.OSS對象存儲概念1.2.NAS與OSS存儲的不同1.3.OSS的應用場景1.4.OSS術語對應表 2.購買OSS存儲資源包3.KodCloud云盤接入OSS對象存儲3.1.創建Bucket存儲空間3.2.創建子用戶用于管理Bucket3.3.獲取用戶的AccessKey3.3.為用戶設置權限3.4.將Bucke…

MySQL和Redis如何保證數據一致性

MySQL與Redis都是常用的數據存儲和緩存系統。為了提高應用程序的性能和可伸縮性&#xff0c;很多應用程序將MySQL和Redis一起使用&#xff0c;其中MySQL作為主要的持久存儲&#xff0c;而Redis作為主要的緩存。在這種情況下&#xff0c;應用程序需要確保MySQL和Redis中的數據是…

軟件測試常用工具總結(測試管理、單元測試、接口測試、自動化測試、性能測試、負載測試等)

前言 在軟件測試的過程中&#xff0c;多多少少都是會接觸到一些測試工具&#xff0c;作為輔助測試用的&#xff0c;以提高測試工作的效率&#xff0c;使用好了測試工具&#xff0c;能對測試起到一個很好的作用&#xff0c;同時&#xff0c;有些公司&#xff0c;也會要求掌握一…

__ob__: Observer 后綴的數組的取值方式

開發中&#xff0c;經常從接口、父組件中&#xff0c;拿到數組然后給新的數組使用&#xff0c; 但是&#xff0c;有時候會發現帶有 __ob__: Observer 后綴的數組&#xff0c;對這種數組來說&#xff0c;你是無法取到這個數組的值的&#xff0c; 而且&#xff0c;離譜的是consol…

【深度學習--RNN 循環神經網絡--附LSTM情感文本分類】

deep learning 系列 --RNN 循環神經網絡 什么是序列模型 包括了RNN LSTM GRU等網絡模型&#xff0c;主要用途是自然語言處理、語音識別等方面&#xff0c;比如生成樂曲&#xff0c;音頻轉換為文字&#xff0c;文本情感分類&#xff0c;機器翻譯等等 標準模型的缺陷 以往的標…

flutter 常見的狀態管理器

flutter 常見的狀態管理器 前言一、Provider二、Bloc三、Redux四、GetX總結 前言 當我們構建復雜的移動應用時&#xff0c;有效的狀態管理是至關重要的&#xff0c;因為應用的不同部分可能需要共享數據、相應用戶交互并保持一致的狀態。Flutter 中有多種狀態管理解決方案&#…

0143 串

目錄 4.串 4.1串的定義和實現 4.2串的模式匹配 部分習題 4.串 4.1串的定義和實現 4.2串的模式匹配 部分習題 1.設有兩個串S1和S2&#xff0c;求S2在S1中首次出現的位置的運算稱為&#xff08;&#xff09; A.求字串 B.判斷是否相等 C.模式匹配 D.連…

Vue2(組件開發)

目錄 前言一&#xff0c;組件的使用二&#xff0c;插槽slot三&#xff0c;refs和parent四&#xff0c;父子組件間的通信4.1&#xff0c;父傳子 &#xff1a;父傳子的時候&#xff0c;通過屬性傳遞4.2&#xff0c;父組件監聽自定義事件 五&#xff0c;非父子組件的通信六&#x…

麥肯錫發布《2023年度科技報告》!

在經歷了 2022 年技術投資和人才的動蕩之后&#xff0c;2023 年上半年&#xff0c;人們對技術促進商業和社會進步的潛力重新燃起了熱情。生成式人工智能&#xff08;Generative AI&#xff09;在這一復興過程中功不可沒&#xff0c;但它只是眾多進步中的一個&#xff0c;可以推…

總說綠幕直播摳像摳不干凈?很有可能是你不知道這個神器!

在綠幕直播的時候&#xff0c;你是不是座位、綠幕、燈光都擺對了&#xff0c;但主播輪廓仍然有綠邊和虛化的情況發生&#xff1f;這種很大可能就是你使用的直播摳像軟件有問題。今天小編把市面上的常見直播軟件來和vLive虛擬直播的摳像做一個對比&#xff0c;讓你直觀感受下他們…

機器學習筆記 - 基于PyTorch + 類似ResNet的單目標檢測

一、獲取并了解數據 我們將處理年齡相關性黃斑變性 (AMD) 患者的眼部圖像。 數據集下載地址,從下面的地址中,找到iChallenge-AMD,然后下載。 Baidu Research Open-Access Dataset - DownloadDownload Baidu Research Open-Access Datasethttps://ai.baidu.com/bro…

Docker入門使用

用一個hello world的小例子來入門docker 在 Docker 容器中部署 Python Flask 的簡單 Hello World 項目&#xff0c;需要遵循以下流程&#xff1a; 編寫應用程序 首先&#xff0c;在本地計算機上編寫一個簡單的 PythonFlask 應用程序&#xff0c;例如&#xff1a; # hello.…

基于ACF,AMDF算法的語音編碼matlab仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 5.算法完整程序工程 1.算法運行效果圖預覽 2.算法運行軟件版本 matlab2022a 3.部分核心程序 .......................................................................... plotFlag …

函數遞歸專題(案例超詳解一篇講通透)

函數遞歸 前言1.遞歸案例:案例一&#xff1a;取球問題案例二&#xff1a;求斐波那契額數列案例三&#xff1a;函數實現n的k次方案例四&#xff1a;輸入一個非負整數&#xff0c;返回組成它的數字之和案例五&#xff1a;元素逆置案例六&#xff1a;實現strlen案例七&#xff1a;…

服務器遭受攻擊之后的常見思路

哈嘍大家好&#xff0c;我是咸魚 不知道大家有沒有看過這么一部電影&#xff1a; 這部電影講述了男主是一個電腦極客&#xff0c;在計算機方面有著不可思議的天賦&#xff0c;男主所在的黑客組織憑借著超高的黑客技術去入侵各種國家機構的系統&#xff0c;并引起了德國秘密警察…

Mac如何打開隱藏文件中Redis的配置文件redis.conf

Redis下載(通過??博客下載的Redis默認路徑為&#xff1a;/usr/local/etc) Redis下載 1.打開終端進入/usr文件夾 cd /usr 2.打開/local/文件夾 open local 3.找到redis.conf并打開,即可修改配置信息

訊飛星火認知大模型全新升級,全新版本、多模交互—測評結果超預期

寫在前面 版本新功能 1 體驗介紹 登錄注冊 申請體驗 2 具體使用 2.1 多模態能力 2.1.1 多模理解 2.1.2 視覺問答 2.1.3 多模生成 2.2 代碼能力 2.2.1 代碼生成 2.2.2 代碼解釋 2.2.3 代碼糾錯 2.2.4 單元測試 2.3 插件功能 2.3.1 PPT生成 2.3.2 簡歷生成 2.3.4 文檔問答 3 其他…