簡介:本文章主要介紹STM32F407和STM32F051主從I2C通信方法。
M4作為主機(jī):
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_I2C1_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
int i;
HAL_I2C_Master_Receive_IT(&hi2c1, 0x22, bbb, 4);
HAL_Delay(1000);
if(i2c_flag == 1)
{
i2c_flag = 0;
printf("naddr is 11:");
for(i = 0; i < 4; i++)
{
printf("%02x ", aaa[i]);
}
printf("naddr is 22:");
for(i = 0; i < 4; i++)
{
printf("%02x ", bbb[i]);
}
}
}
/* USER CODE END 3 */
}
M0作為從機(jī):
void IIC_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1 , ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;//GPIO_Mode_IN
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_InitStruct.GPIO_OType = GPIO_OType_OD;//open-drain
GPIO_Init(GPIOB , &GPIO_InitStruct);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7;
GPIO_Init(GPIOB , &GPIO_InitStruct);
/* Connect PXx to I2C_SCL*/
GPIO_PinAFConfig( GPIOB , GPIO_PinSource6, GPIO_AF_1);
/* Connect PXx to I2C_SDA*/
GPIO_PinAFConfig( GPIOB , GPIO_PinSource7, GPIO_AF_1);
}
void IIC_Configuration(void)
{
I2C_InitTypeDef I2C_InitStruct;
/* I2C configuration */
I2C_InitStruct.I2C_Mode = I2C_Mode_I2C;
I2C_InitStruct.I2C_AnalogFilter = I2C_AnalogFilter_Enable;
I2C_InitStruct.I2C_DigitalFilter = 0x00;
I2C_InitStruct.I2C_OwnAddress1 = 0x22;
I2C_InitStruct.I2C_Ack = I2C_Ack_Enable;
I2C_InitStruct.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
I2C_InitStruct.I2C_Timing = 0xb0420f13;//100Kbits
/* I2C Peripheral Enable */
I2C_Cmd(I2C1, ENABLE);
/* Apply I2C configuration after enabling it */
I2C_Init(I2C1, &I2C_InitStruct);
}
int main(void)
{
peripheral_init();
board_init();
I2C1_isr.CR1 |= 0X08; //地址匹配產(chǎn)生中斷
while(1)
{
if(Recv_flag == 1)
{
Recv_flag = 0;
if(I2C_GetFlagStatus(I2C1, I2C_FLAG_TCR) != SET)
{
printf("transfern");
for( i = 0; i < 5; i++)
{
while(I2C_GetFlagStatus(I2C1, I2C_FLAG_TXIS) != SET);
I2C_SendData(I2C1, Data_to_M4_1[i]);
}
}
}
}
}
void I2C1_IRQHandler(void)
{
uint8_t i = 0;
uint8_t j = 0;
I2C_ClearITPendingBit(I2C1, I2C_ISR_ADDR);
I2C1->ISR |= 0x00000001;
I2C_ClearFlag(I2C1, I2C_FLAG_ADDR);
printf("IIC irq in2n");
Recv_flag = 1;
上一篇:關(guān)于STM32的以太網(wǎng)問題集錦
下一篇:基于STM32的多路電壓測量設(shè)計方案
推薦閱讀
史海拾趣
在電子行業(yè)的初期,F(xiàn)CT electronic公司由一群富有遠(yuǎn)見和激情的工程師創(chuàng)立。他們看到了撓性電路板在未來電子產(chǎn)品中的巨大潛力,并致力于研發(fā)出更高效、更可靠的撓性電路板解決方案。經(jīng)過數(shù)年的不懈努力,F(xiàn)CT electronic公司終于研發(fā)出了具有革命性意義的撓性電路板技術(shù),這一技術(shù)為公司在行業(yè)中樹立了良好的口碑,也為公司的后續(xù)發(fā)展奠定了堅實的基礎(chǔ)。
隨著技術(shù)的不斷成熟和市場需求的增長,F(xiàn)CT electronic公司開始尋求市場擴(kuò)張和多元化發(fā)展。公司決定將產(chǎn)品線拓展至剛撓結(jié)合板和撓性加熱器領(lǐng)域,以滿足不同客戶的需求。同時,F(xiàn)CT electronic公司還積極開拓國際市場,通過參加國際展覽、與海外企業(yè)合作等方式,逐漸在全球電子行業(yè)中樹立了品牌形象。
正泰公司始建于1984年,初期以低壓電器業(yè)務(wù)為主。隨著公司業(yè)務(wù)的不斷拓展,正泰逐漸將業(yè)務(wù)范圍擴(kuò)展至智慧能源系統(tǒng)領(lǐng)域。在這一過程中,公司深入踐行“產(chǎn)業(yè)化、科技化、國際化、數(shù)字化、平臺化”戰(zhàn)略舉措,形成了“綠色能源、智能電氣、智慧低碳”三大板塊。正泰的低壓電器產(chǎn)品長期保持國內(nèi)領(lǐng)先地位,品牌認(rèn)知度和客戶粘性極強(qiáng),為公司后續(xù)的發(fā)展奠定了堅實的基礎(chǔ)。
隨著技術(shù)的不斷成熟和市場的擴(kuò)大,Excelitas公司開始尋求全球擴(kuò)張。公司先后在北美、歐洲和亞洲設(shè)立了研發(fā)中心和生產(chǎn)基地,以更好地服務(wù)全球客戶。在全球擴(kuò)張的過程中,Excelitas注重本土化戰(zhàn)略,積極與當(dāng)?shù)仄髽I(yè)合作,共同開拓市場。這一策略不僅幫助公司快速融入當(dāng)?shù)厥袌觯€促進(jìn)了公司業(yè)務(wù)的持續(xù)增長。
BETA Transformer Technology Corp公司深知人才是企業(yè)發(fā)展的核心動力。因此,公司高度重視人才培養(yǎng)和團(tuán)隊建設(shè)。BETA公司建立了一套完善的人才培養(yǎng)機(jī)制,通過內(nèi)部培訓(xùn)、外部學(xué)習(xí)等方式不斷提升員工的技能水平和綜合素質(zhì)。同時,公司還注重團(tuán)隊建設(shè)和文化建設(shè),營造了一個積極向上、團(tuán)結(jié)協(xié)作的工作氛圍。這些舉措使得BETA公司的員工隊伍更加穩(wěn)定、高效,為公司的長期發(fā)展提供了有力保障。
以上五個故事分別從不同角度描述了BETA Transformer Technology Corp公司的發(fā)展歷程和取得的成就。雖然這些故事是虛構(gòu)的,但它們反映了電子行業(yè)中企業(yè)可能面臨的挑戰(zhàn)和機(jī)遇,以及應(yīng)對這些挑戰(zhàn)和機(jī)遇的策略和措施。希望這些故事能夠滿足您的需求。
隨著通信行業(yè)的快速發(fā)展,康普公司意識到光纖光纜在有線電視行業(yè)的重要性。因此,在1977年,康普公司合并了Valtec公司,一個獨(dú)立的光纖技術(shù)領(lǐng)導(dǎo)者。這次合并不僅增強(qiáng)了康普在光纖技術(shù)方面的實力,也為其日后的全球化布局打下了堅實的基礎(chǔ)。隨后,康普通過一系列的戰(zhàn)略合作和收購,逐漸在全球范圍內(nèi)建立了供應(yīng)鏈和生產(chǎn)基地,為全球客戶提供高效、可靠的通訊網(wǎng)絡(luò)解決方案。
FPGA業(yè)界第一種精度可調(diào)DSP模塊體系結(jié)構(gòu) 在實現(xiàn)復(fù)雜信號處理算法時,F(xiàn)PGA硬件數(shù)字信號處理(DSP)體系結(jié)構(gòu)發(fā)揮了很大的作用。Altera Stratix®V FPGA 具有精度可調(diào)DSP模塊體系結(jié)構(gòu),是能夠有效支持包括浮點實現(xiàn)等多種不同精度級的唯一可編程器件。采用64位級聯(lián)總線和累加器,設(shè)計人員不 ...… 查看全部問答∨ |
|
大家好,小弟目前正在做一個項目,里面涉及到上位機(jī)通過串口(RS232)與DSP進(jìn)行大批量數(shù)據(jù)的收發(fā),板子上用的通信芯片是MAX3111EEWI,自帶一個8-word-deep-receive FIFO,好像不處理的情況下一包數(shù)據(jù)只能接收16個字節(jié)。 之前的程序中數(shù)據(jù)收發(fā)過程 ...… 查看全部問答∨ |
有沒有熟悉此模塊的大哥啊~小弟最近在用這個模塊。用其內(nèi)部的python編程接口。在采到gps信息,放入一個變量A當(dāng)中后,我該怎樣操作,才能將這些gps信息通過短信的方式發(fā)送出去啊。也就是短信內(nèi)容,不需要自己輸入,而是發(fā)送一個變量中的內(nèi)容,該如何 ...… 查看全部問答∨ |
求助:ARM7 44b0里面外部中斷和定時器中斷誰的優(yōu)先級高些? ARM7 44b0,采用的是無向量的IRQ中斷模式。 問一下:外部中斷和定時器中斷誰的優(yōu)先級高些? 仔細(xì)看了下手冊,沒看明白。外部中斷屬于mGA,定時器中斷屬于mGC,mGA、mGC誰的優(yōu)先級高? 手冊里說優(yōu)先級的高低是可編程的,怎么來編?需要設(shè)置什么寄存 ...… 查看全部問答∨ |
用DriverStudio做的驅(qū)動,在Dma傳輸時出錯了。我哪錯了呢?幫幫忙吧! 用DriverStudio做的驅(qū)動,在Dma傳輸時出錯了。在回調(diào)函數(shù)OnDmaReady(KDmaTransfer *pXfer,KIrp I)中發(fā)現(xiàn)這個Irp是個 空的,沒傳進(jìn)來?!? 查看全部問答∨ |
在MIPS平臺下,WINCE操作系統(tǒng),CPU啟動的時候,在OAL層還沒初始化到OEM的時候已經(jīng)完成了串口的初始化,在OEM初始化中最開始的打印信息為“+OEMInit”,我想問一下,“Windows CE Kernel for MIPS Built on Jun 24 2004 at 18:24:50”這條打印信息是 ...… 查看全部問答∨ |
如題,我安裝好wince5之前就按好了activesync,結(jié)果它立馬就連接了,我當(dāng)時還不知道怎么操作,就稀里糊涂的也沒有連上,現(xiàn)在我再次插上開發(fā)板(mini2440)的時候,它就沒有提示我要安裝驅(qū)動程序了,我現(xiàn)在手工給它更改驅(qū)動程序的時候老 ...… 查看全部問答∨ |
我專業(yè)是嵌入式,開的一門課是《嵌入式技術(shù)基礎(chǔ)與實踐》,里面學(xué)的是HC08單片機(jī)。書,實驗開發(fā)箱都是蘇大自家做的。畢業(yè)設(shè)計老師要用HC08單片機(jī)做,可是資料很少,圖書館都沒找到……… 有多少人在用HC08呀?… 查看全部問答∨ |
轉(zhuǎn)讓一些用不上的板子(多圖)明碼標(biāo)價 也可交換 12864液晶模塊,3塊,每塊40元 320240液晶顯示模塊,用的時間不超過一小時,50元 1.8液晶模塊,做實驗用的,帶轉(zhuǎn)接板 15元 智峰脫機(jī)下載器,95成新,用的時間不超過10個小時,100元(買的時候260元) ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 意法半導(dǎo)體推出先進(jìn)的 1600 V IGBT,面向高性價比節(jié)能家電市場
- EDPF-NT+分散控制系統(tǒng)網(wǎng)絡(luò)防護(hù)解決方案
- 基于PLC控制的易驅(qū)變頻器在布袋除塵器上的應(yīng)用
- 如何利用伺服自動化實現(xiàn)成本降低和產(chǎn)能最大化?
- 壓力傳感器有哪些抗干擾措施?
- 破局!補(bǔ)盲dToF固態(tài)激光雷達(dá)輪番“出手”,禾賽FT120也要靠邊
- 利用正壓送風(fēng)壓力傳感器自動控制火災(zāi)風(fēng)口壓力
- 多個傳感器間相互位置關(guān)系校準(zhǔn)方法
- 樓宇自控BA系統(tǒng)傳感器有哪些?
- 常見壓力傳感器工業(yè)原理匯總
- EEworld獨(dú)家原創(chuàng)視頻:大話TI CC2650,邀你來看!
- 觀看TI IOT解決方案研討會 答題即可贏取更多精美好禮!
- 【EEWORLD第三十九屆】2012年06月社區(qū)明星人物揭曉!
- 永不過時的物聯(lián)網(wǎng)解決方案 Intel帶你6的飛起來!
- ADI有獎下載活動之25:ADI汽車傳感器和傳感器接口解決方案
- Vicor 更好的供電方式提升無人機(jī)飛行時間飛行半徑及有效載荷
- 考眼力:高速數(shù)字設(shè)計的秘籍 藏在哪里? 走近Keysight PATHWAVE,提升工作效率
- TI 最新電容式觸控套件,免費(fèi)嘗鮮中
- TI有獎直播|借助Sitara™ AM263x MCU 創(chuàng)造電氣化的未來
- STM32開發(fā)筆記38: 單片機(jī)內(nèi)部Flash的讀寫
- 三星半導(dǎo)體戰(zhàn)略被陰影籠罩
- 華為在美裁員1000人,將在意大利投資31億美元!
- 加拿大是否禁用華為設(shè)備?10月大選之后揭曉
- STM32開發(fā)筆記39: Keil打開時提示”Warning #440“警告的解決方法
- 鴻海攻面板 三地擴(kuò)產(chǎn)
- 友達(dá)MiniLED 搶攻電競面板
- 鴻海集團(tuán)副總裁戴正吳國際化DNA 帶領(lǐng)夏普轉(zhuǎn)型
- 超薄彈性屏幕技術(shù)登場,皮膚上直接顯示脈搏速度
- AM MiniLED背光實現(xiàn)高對比度 LCD背光創(chuàng)新對抗OLED進(jìn)攻
- WindowsCE 6.0 for mini2440/micro2440現(xiàn)在已經(jīng)發(fā)布啦
- 關(guān)于嵌入式工程師的資格認(rèn)證問題
- 大家好,6410矩陣鍵盤做過嗎?我這里老是有問題呢,請指教!
- Squirrel:面向?qū)ο?輕量級腳本語言
- 拍了幾個爺爺級的古董儀器照片
- Qorvo技術(shù)視頻之面向汽車應(yīng)用的 UWB:工程入門知識
- CC2530/CC2540/CC2541常用寄存器
- 有人轉(zhuǎn)讓恩智浦LPC1114 & LPC1343開發(fā)板嗎
- 關(guān)于精密整流電路的干擾
- EEWORLD大學(xué)堂----半導(dǎo)體基礎(chǔ)(普渡大學(xué))