[问题] stm32F 和 arduino uno I2C 连线问题

楼主: polor (波罗儿)   2014-07-26 16:20:50
最近在练习在 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 的设定, 似乎结果都一样
请问问题出在哪?
谢谢
作者: damody (天亮damody)   2014-07-26 17:34:00
尽量不要直接呼叫hal层的函数 printf偷做了很多东西吧
楼主: polor (波罗儿)   2014-07-26 19:14:00
我的意思说使用printf却受到讯息 本来我是没要用的
作者: easypro   2014-07-27 00:04:00
那应该是设定到跑uart了吧 并非跑i2c状态
作者: damody (天亮damody)   2014-07-27 13:48:00
抱歉应该跟底层无关 今天你用while送I2C没有停 肯定GGprintf只是delay用的,总之IIC要给对方有时间处理资料

Links booklink

Contact Us: admin [ a t ] ucptt.com