网上的IIC案例比较多,就试验IIC。不失所望,找到了一个可以直接用到
STM32f103的demo,并且读到了值。
于是,把自己的代码仿照着demo修改,发现时序思路是一样的,除了延时我修改了些,但copy demo之后,用自己的程序下载,还是不能读。
再把我的主函数代码,放到demo里,却可以读。
鼓捣了之后,暂且发现了:
bmp280在重新烧写程序之后必须重新上电,但如果是用复位,这会使得CSB有低电平的情况,IIC就undefined 。(datasheet里是有说明iic时csb绝对不能有低电平)
如果不连CSB和SDO脚,是可以按复位键的。这就说明,bmp280内部是有上拉和下拉的。
请教的问题:
我在刚开始用SPI时,也是一直都不出值,网友给的驱动也跑不了。请问,在用SPI读取时,需要注意的是什么?类似于上面这种,时序思路是对的,但确实致命的点。多谢多谢。
大佬,我用了你的程序。IIC成功读到值,SPI没有读到(id也没读出)。这说明是硬件电路的问题了吧。。。
另外,有句程序:我从
p_bmp280->BMP280_BUS_READ_FUNC(……)
指到:
#define BMP280_RD_FUNC_PTR s8 (*bus_read)(u8, u8, u8 *, u8)
但(*bus_read) 没有找到实现的方法。
请问:是结构上的技巧么?还是?
一周热门 更多>