[問題] stm32f103 i2c io軟體模擬

看板ASM (組合語言)作者 (農伕)時間5年前 (2019/01/31 17:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好 最進需要停整一顆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
文章代碼(AID): #1SKi336R (ASM)
文章代碼(AID): #1SKi336R (ASM)