[問題] stm32f103 i2c io軟體模擬
大家好
最進需要停整一顆IC TC358870為I2C介面
需要寫入大量資料到Register上
這邊採用stm32f103zet6想用軟體模擬的方式
模擬i2c的動作,硬體好像有BUG?
但程序都會死在
u8 I2C_Wait_Ack(void)
{
u8 ucErrTime=0;
SDA_IN(); //SDA?????
GPIO_SetBits(GPIOA,PIN_SDA);
delay_us(5);
GPIO_SetBits(GPIOA,PIN_SCL);
delay_us(5);
while(GPIO_ReadInputDataBit(GPIOA,PIN_SDA))
{
ucErrTime++;
if(ucErrTime>250)
{
I2C_Stop();//程序都會因為等不到SDA被拉低
return 1;
}
}
GPIO_ResetBits(GPIOA, PIN_SCL);
return 0;
}
過程中換了好幾個寫法,都大同小異,但始終不能使用
想詢問一下如何更正呢?
附上Toshiba自動i2c調整register巨集與兩個版本
有試過24C02寫入一個byte
讀出後都失敗(都是pull high255...)
TC358870 產生:https://drive.google.com/open?id=1-KpAAaMwxf-c2vUkSAXTAMkdKURfoXQD
STM32版本1:https://drive.google.com/open?id=1qSmL1oUkWLnYyrb_UpP3hqNb4SUlikMa
STM32版本2:https://drive.google.com/open?id=1hHDdhM1cy1ETesdyB0aKMMM0t6qRZfsB
工程模板是用STM32F103彥霖
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.185.28
※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1548927171.A.19B.html
ASM 近期熱門文章
PTT數位生活區 即時熱門文章