作者polor (波罗儿)
看板ASM
标题[问题] stm32F 和 arduino uno I2C 连线问题
时间Sat Jul 26 16:20:50 2014
最近在练习在 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://webptt.com/cn.aspx?n=bbs/ASM/M.1406362855.A.F6C.html
1F:推 damody:尽量不要直接呼叫hal层的函数 printf偷做了很多东西吧 07/26 17:34
2F:→ polor:我的意思说使用printf却受到讯息 本来我是没要用的 07/26 19:14
3F:→ easypro:那应该是设定到跑uart了吧 并非跑i2c状态 07/27 00:04
4F:→ damody:抱歉应该跟底层无关 今天你用while送I2C没有停 肯定GG 07/27 13:48
5F:→ damody:printf只是delay用的,总之IIC要给对方有时间处理资料 07/27 13:50