CubeMX的配置
下面這些是我修改過的地方,只要注意I2C和系統時鐘等基礎配置即可,不想說太多,以圖為言
AT24C64的自制庫
AT24C64.c
#include "AT24C64.h"
#include "i2c.h"
void AT24CXX_Write(u16 reg_address,u8 data)
{
static HAL_StatusTypeDef i;
i = HAL_I2C_Mem_Write(&hi2c1,AT24CXX_DEV_ADDRESS,reg_address,I2C_MEMADD_SIZE_16BIT,&data,1,100);
AT24CXX_DELAY_MS(5); //AT24C64的最長寫入時間是5ms
}
u8 AT24CXX_Read(u16 reg_address)
{
u8 data = 0;
u8 temp[2];
temp[0] = reg_address>>8;
temp[1] = reg_address;
//HAL_I2C_Master_Transmit(&hi2c1,AT24CXX,temp,2,100);
//HAL_I2C_Master_Receive(&hi2c1,AT24CXX,&data,1,100);
HAL_I2C_Mem_Read(&hi2c1,AT24CXX_DEV_ADDRESS,reg_address,I2C_MEMADD_SIZE_16BIT,&data,2,100);
return data;
}
AT24C64.h
/*
* File: AT24C64.h
* Author: Administrator
* AT24C64相關函數,需要制定IIC基本函數
* Created on 2015年8月7日, 下午3:52
*/
#ifndef __AT24C64_H
#define __AT24C64_H
#include "bsp.h"
#define AT24CXX_DEV_ADDRESS 0xA0
#define AT24CXX_DELAY_MS osDelay
typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
void AT24CXX_Write(u16 reg_address,u8 data);
u8 AT24CXX_Read(u16 reg_address);
#endif /* __AT24C64_H */
值得注意的是AT24C64的地址是16位的,并且內部寫EPPROM空間的時間最長為5ms,之前被這里坑了很久,差點以為I2C的庫函數存在問題,所以上方的代碼中嘗試了多種讀取參數的方式。
主循環代碼
/* Infinite loop */
for(;;)
{
AT24CXX_Write(0x0001,0xA2);
osDelay(4);
i = AT24CXX_Read(0x0001);
i = i+1;
if(0 != i) usb_printf((const char*)&i);
osDelay(100);
}
上一篇:關于CubeMX的串口全雙工接收發送鎖死的問題
下一篇:STM32F407使用USB作虛擬串口出現黃感嘆號
推薦閱讀
史海拾趣
2013年,ELESTA公司更名為ELESTA GmbH,這一品牌重塑標志著公司進入了新的發展階段。同時,ELESTA也開始實施全球化戰略,積極拓展國際市場,通過不斷提升產品質量和服務水平,贏得了全球客戶的信賴和認可。
在快速發展的同時,EICHHOFF公司也積極關注環保和可持續發展問題。公司認識到作為電子行業的一員,必須承擔起保護環境、節約資源的責任。為此,EICHHOFF公司采取了一系列措施來降低生產過程中的能耗和排放。例如:引入節能設備和技術、優化生產流程、推廣綠色包裝等。
此外,EICHHOFF公司還積極參與環保公益活動和社會責任項目,為社會做出積極貢獻。這些努力不僅提升了公司的社會形象,也為公司的可持續發展奠定了基礎。
隨著全球化趨勢的加強,EICHHOFF公司意識到必須加快國際化步伐以拓展更廣闊的市場。XX年代初,公司開始在歐洲其他國家設立銷售和服務機構,并逐步將業務拓展到亞洲和北美地區。為了更好地適應不同地區的市場需求和文化差異,EICHHOFF公司積極招聘本地人才,并加強與當地企業和機構的合作。
通過實施國際化戰略,EICHHOFF公司的品牌影響力得到了顯著提升,市場份額也不斷擴大。同時,公司也積累了豐富的國際運營經驗和管理經驗,為未來的發展奠定了堅實基礎。
在電子行業中,技術更新迅速,創新是企業持續發展的動力。Armel Electronics Inc公司始終將研發創新作為公司的核心競爭力。公司不斷投入資金,引進先進設備和技術,加強研發團隊的建設。通過不斷創新,Armel成功推出了一系列具有行業領先水平的新產品,為公司的持續發展提供了有力保障。
近年來,FRIWO與印度UNO MINDA集團建立了戰略合作關系,共同開發印度電動汽車市場。UNO MINDA集團投資1500萬歐元收購FRIWO AG的部分股權,這一交易標志著FRIWO在電動汽車領域的進一步拓展。雙方合作將結合FRIWO在電源和充電技術方面的優勢與UNO MINDA在印度市場的深厚基礎,為印度市場提供完整的電驅動系統解決方案。這一合作不僅增強了FRIWO在全球市場的影響力,也為印度電動汽車市場的發展注入了新的活力。
隨著全球化的深入發展,Belden公司開始積極拓展國際市場。通過在全球范圍內設立分支機構和工廠,百通不僅提升了自身的產能和效率,也更好地滿足了全球客戶的需求。同時,公司還不斷推出新產品和新技術,拓展在工控線纜、音視頻線纜和計算機網絡等領域的市場份額。如今,Belden已經成為全球最大的綜合布線及專業線纜制造商之一,其產品和服務遍布全球各地。
這五個故事只是Belden Wire and Cable公司發展歷程中的一部分,但它們都客觀地反映了公司在電子行業里不斷發展、創新和壯大的事實。通過這些故事,我們可以看到一個企業通過不斷創新和拓展市場,逐漸成長為行業領導者的過程。
本人設計的工業儀表,遇到這樣的問題:輸入信號0-20MV。當用手觸摸輸入端子的時候,顯示值會波動,這是什么干擾(好象是串模干擾),如何解決?注明:信號是經過了2個模擬開關(CD4051),由OP07放大 再采樣。… 查看全部問答∨ |
|
我現在在做一個東東,上面有一個sd卡,sd卡又有引腳連接到wince系統,這樣sd卡在wince系統中可見。 現在就相當于sd卡被wince和我的設備共享,使用時通過切換data線來實現。 問題來了,由于wince系統在sd卡插入時讀取了里面的fat表并buffer起來, ...… 查看全部問答∨ |
pxa3XX 從CF卡上啟動nk.bin 的bootloader 請問各位大俠有誰做過pxa310或者pxa270的bootloader 要求從CF卡啟動nk.bin 我應該用什么軟件來編譯,用wce6.0 還是ARM提供的AXD 是不是wce6.0下生成bootimage.nb0 就是bootloader 我用仿 ...… 查看全部問答∨ |
我嘗試著自己在fat1,fat2 中分配空閑空間,接著在dir根目錄項中添加項,目標是在c盤下新建一個xxxxxxx.txt 的文件,我嘗試著給dir各項賦了值。我用工具檢驗了,也寫進去了。 可是為什么c盤未增加相應文件?我試著重新啟動了計算機(本以為window ...… 查看全部問答∨ |
|
platform builder4.2中x86模擬器下載黑屏 提示:an unrecoverable processor has been encountered 這個問題如何解決啊??… 查看全部問答∨ |
|