[問題] stm32F 和 arduino uno I2C 連線問題

看板ASM作者 (波羅兒)時間9年前 (2014/07/26 16:20), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
最近在練習在 stm32f discovery 和 arduino 做 I2C 溝通 1. stm32 部分的 code 為 http://codepad.org/YixZzNv3 2. arduino 的 code 為 http://codepad.org/rtpBBUh3 程式碼都是從網路上抓來修改 碰到奇怪的問題是, 在 stm32 中 while(1){ I2C_start(I2C1, SLAVE_ADDRESS<<1, I2C_Direction_Transmitter); // start a transmission in Master transmitter mode I2C_write(I2C1, 0x20); // write one byte to the slave //I2C_write(I2C1, 0x03); // write another byte to the slave I2C_stop(I2C1); // stop the transmission //printf("data\n"); } 如果加一個 printf("data\n") , arduino 那邊就會收到訊息 mark掉就不會收到, 我在想是不是 timing 的問題? 只是我嘗試修改 clock 的設定, 似乎結果都一樣 請問問題出在哪? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.3.130 ※ 文章網址: http://www.ptt.cc/bbs/ASM/M.1406362855.A.F6C.html

07/26 17:34, , 1F
盡量不要直接呼叫hal層的函數 printf偷做了很多東西吧
07/26 17:34, 1F

07/26 19:14, , 2F
我的意思說使用printf卻受到訊息 本來我是沒要用的
07/26 19:14, 2F

07/27 00:04, , 3F
那應該是設定到跑uart了吧 並非跑i2c狀態
07/27 00:04, 3F

07/27 13:48, , 4F
抱歉應該跟底層無關 今天你用while送I2C沒有停 肯定GG
07/27 13:48, 4F

07/27 13:50, , 5F
printf只是delay用的,總之IIC要給對方有時間處理資料
07/27 13:50, 5F
文章代碼(AID): #1JqsJdzi (ASM)