好心情123 发表于 2014-12-17 22:44:25

风铃草2 发表于 2014-12-17 09:02
问题解决了,用库函数的话 多加点延迟就能读到数据了

好奇怪啊,理论上来说用库函数操作相对于寄存器操作已经延时了,我觉得你的这个根本原因还是没有找到,能否把完整的工程放出来,方便查找

党国特派员 发表于 2014-12-20 21:16:54

库函数也TM是操作寄存器,只是包装了下,就不能读出来了?

大秦正声 发表于 2014-12-22 10:41:16

风铃草2 发表于 2014-12-17 09:02
问题解决了,用库函数的话 多加点延迟就能读到数据了

硬件i2c可以用吗?谢谢

风铃草2 发表于 2014-12-22 14:58:34

好心情123 发表于 2014-12-17 22:44
好奇怪啊,理论上来说用库函数操作相对于寄存器操作已经延时了,我觉得你的这个根本原因还是没有找到,能 ...

晚上看看能不能找到,再放出来给看看

风铃草2 发表于 2014-12-22 15:01:06

党国特派员 发表于 2014-12-20 21:16
库函数也TM是操作寄存器,只是包装了下,就不能读出来了?

不知道 调试应答信号的时候 用万用表量是3.3V程序用库函数读出的结果是0用寄存器操作读出是1

风铃草2 发表于 2014-12-22 15:02:43

好心情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如果用库函数 就报错用寄存器就不会

风铃草2 发表于 2014-12-22 15:03:40

大秦正声 发表于 2014-12-22 10:41
硬件i2c可以用吗?谢谢

恩 可以用的,板子是STM32F103调试成功以后,然后换成STM32F407的

好心情123 发表于 2014-12-22 17:22:03

风铃草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

这样试试看

AndyYau-268557 发表于 2014-12-26 11:41:07

读端口前需要先置位成高电平,然后操作。以前在lcd操作时遇见过。你试试
页: 1 2 [3]
查看完整版本: 库函数与寄存器操作