风铃草2 发表于 2014-12-17 09:02
问题解决了,用库函数的话 多加点延迟就能读到数据了
好奇怪啊,理论上来说用库函数操作相对于寄存器操作已经延时了,我觉得你的这个根本原因还是没有找到,能否把完整的工程放出来,方便查找
库函数也TM是操作寄存器,只是包装了下,就不能读出来了?
风铃草2 发表于 2014-12-17 09:02
问题解决了,用库函数的话 多加点延迟就能读到数据了
硬件i2c可以用吗?谢谢
好心情123 发表于 2014-12-17 22:44
好奇怪啊,理论上来说用库函数操作相对于寄存器操作已经延时了,我觉得你的这个根本原因还是没有找到,能 ...
晚上看看能不能找到,再放出来给看看
党国特派员 发表于 2014-12-20 21:16
库函数也TM是操作寄存器,只是包装了下,就不能读出来了?
不知道 调试应答信号的时候 用万用表量是3.3V程序用库函数读出的结果是0用寄存器操作读出是1
好心情123 发表于 2014-12-17 22:44
好奇怪啊,理论上来说用库函数操作相对于寄存器操作已经延时了,我觉得你的这个根本原因还是没有找到,能 ...
#define SDA_read GPIOE->IDR& GPIO_Pin_3 //GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)
我的是这样的
if(SDA_read==0)
return false
用万用表量SDA是3.3V如果用库函数 就报错用寄存器就不会
大秦正声 发表于 2014-12-22 10:41
硬件i2c可以用吗?谢谢
恩 可以用的,板子是STM32F103调试成功以后,然后换成STM32F407的
风铃草2 发表于 2014-12-22 15:02
#define SDA_read GPIOE->IDR& GPIO_Pin_3 //GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)
我的是 ...
i = gpio_readinputdatabie(gpioe,gpio_pin_3);
if(i==0)
return false
这样试试看
读端口前需要先置位成高电平,然后操作。以前在lcd操作时遇见过。你试试