Hi
When I use I2C library without Keil RTX to communicate with I2C EEPROM the program works fine, but when I start the RTX the program stuck at:
while(!Status) Status=I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED); // Test on EV6 and clear it
Somebody know how to fix this?
Ps: uVision3 V3.63 , MDK-ARM V3.24 , RL-ARM V3.40
Just wondering if you had fixed this problem. If you haven't, I've gotten the I2C to work on the MCBSTR9. I saw that the code is using I2C1. There are two I2Cs on the STR912. If you really want to use I2C1, then one of the I2C1 is tied to the Ethernet. You must reconfigure it via a jumper on the board. That is documented on the setup board (check the on-line manual).
Let me know if you need some help with this.
Tom
Unfortunately did not work. Im using the STM32 in the MCBSTR32. I used the I2C1 and I2C2, but both present the same problem. I created a program only to test the I2C with RTX. This program have a function that write and read 10 address of a EEPROM. In program I configured the Clocks and I2C inside main function and after I called the os_sys_init function. If I call the test function of I2C before the os_sys_init function, the function runs perfectly. But if I call the test function of I2C after the os_sys_init function (inside a task) the problem occurs.
Did you write your own I2C write/read? My routines are interrupted-based and I had to modify it from the original I2C sample. If you want, I can send you what I did. Though, I don't like to post it here because it's long.
View all questions in Keil forum