1. 程式人生 > >STM32F030 I2C 從模式中斷程式設計

STM32F030 I2C 從模式中斷程式設計

第一次用I2C的從模式,之前用的是主模式,用的IO模擬的,在很多裝置都用上了,沒什麼問題。在使用I2C從模式之前,也在網上看到很多人說這個是坑。自己花了幾天的時間,終於跳過了這個坑,再次總結下:

1. 最困難的地方:因為需要兩個平臺對接,主端用的是LINUX系統,晶片是TI335X,從端是STM32F030,我兩端的程式都沒寫過,所以出現問題了,無法判定是哪一邊的問題,這個很痛苦。

 

2. 例子。雖然“拿來主義”不太厚道”,但是站在巨人的肩膀上,往往是最快的。

1) STM32F030的程式碼:http://www.openedv.com/forum.php?mod=attachment&aid=NDczMzV8N2FkMWE1NWZ8MTU0MTUwMjI3MnwwfDY0NTIy

 

2)Linux的程式碼:http://blog.sina.com.cn/s/blog_13087b7fa0102wcyg.html

 

3. 實際上STM32F030寫的已經很好了,只是我在除錯過程中,總是huiy懷疑這懷疑那的,改了很多程式碼,做了很多列印資訊,實際上證明我的懷疑都是錯的。

 

4. Linux才是很大的坑,畢竟我很少在Linux下程式設計。

  1)ioctl返回的是成功失敗的標誌位,而我一開始以為是返回成功的位元組數,這裡花了半天時間,老是返回1,實際上就是成功的,而我認為應該範圍我需要的長度。

2) 在讀、寫同時操作的時候,必須先讀後寫。我在除錯的時候,先除錯寫的程式碼,是OK的,在除錯度的程式碼,也是OK,最後合併的時候,也是OK。但是發現一斷電重開機就不行,折騰幾下右可以了。最後把讀放在寫前面就沒在出現異常了。

以上,做個記錄。