I2C在信标参考设计中的应用

8个职位/0个新职位
最后一篇文章
克鲁塔斯
离线
最后一次见到:5年1个月前
已加入:2015-07-09 19:57
I2C在信标参考设计中的应用

你好,
我想用I2C接口的传感器和信标。我的工作与信标参考设计作为我的出发点。尽管每当我尝试为i2c总线配置引脚时,信标会因为未知的原因停止播发。我在信标参考设计中所做的唯一更改是在function set\u pad中的periph\u setup.c中,其中为信标参考设计指定了外围管脚。所做的更改包括:
//代码段开始
void set\u pad\u functions(void)//设置gpio端口函数模式
{

#if(CFG\u HW\u CONFIG==HW\u CONFIG\u SMARTTAG)
GPIO\ U配置引脚(GPIO\ U端口\ U 1、GPIO\ U引脚\ U 4、输入\下拉、PID\ GPIO、false);
GPIO\ U配置引脚(GPIO\ U端口\ U 0,GPIO\ U引脚\ U 6,输出,PID\ GPIO,false);
GPIO\ U配置引脚(GPIO\ U端口\ U 0,GPIO\ U引脚\ U 5,输入,PID\ GPIO,false);
如果(!系统启动标志)
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_5,OUTPUT,PID_GPIO,false);//绿色LED熄灭以降低功耗

GPIO\u ConfigurePin(GPIO\u PORT\u 0,GPIO\u PIN\u 0,INPUT\u PULLUP,PID\u GPIO,false);
GPIO\u ConfigurePin(GPIO\u PORT\u 0,GPIO\u PIN\u 3,INPUT\u PULLUP,PID\u GPIO,false);
GPIO\u ConfigurePin(GPIO\u PORT\u 0,GPIO\u PIN\u 1,INPUT\u PULLUP,PID\u GPIO,false);
GPIO\u ConfigurePin(GPIO\u PORT\u 0,GPIO\u PIN\u 2,INPUT\u PULLUP,PID\u GPIO,false);
#elif(CFG\u HW\u CONFIG==HW\u CONFIG\u DK)
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_1,INPUT_PULLUP,PID_GPIO,false);//按钮
#elif(CFG\u HW\u CONFIG==HW\u CONFIG\u PVCELL)
GPIO\u ConfigurePin(GPIO\u PORT\u 0,GPIO\u PIN\u 0,INPUT\u PULLDOWN,PID\u GPIO,false);
GPIO\u ConfigurePin(GPIO\u PORT\u 0,GPIO\u PIN\u 3,INPUT\u PULLDOWN,PID\u GPIO,false);
#elif(CFG\u HW\u CONFIG==HW\u CONFIG\u SMARTTAG2)

GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_1,OUTPUT,PID_GPIO,false);//蜂鸣器-
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_0,OUTPUT,PID_GPIO,false);//蜂鸣器+
GPIO_ConfigurePin(GPIO_PORT_1,GPIO_PIN_1,INPUT_PULLDOWN,PID_GPIO,false);//按钮
GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_2,OUTPUT,PID_GPIO,false);//发光二极管

GPIO\ U配置引脚(SPI\ U GPIO\ U端口、SPI\ U CS\ U引脚、输出、PID\ U SPI\ U EN、true);
GPIO\ U配置引脚(SPI\ U GPIO\ U端口、SPI\ U CLK\ U引脚、输出、PID\ U SPI\ U CLK、false);
GPIO\ U配置引脚(SPI\ U GPIO\ U端口、SPI\ U DO\ U引脚、输出、PID\ U SPI\ U DO、false);
GPIO\ U配置引脚(SPI\ U GPIO\ U端口,SPI\ U DI\ U引脚,输入,PID\ U SPI\ U DI,false);

GPIO_ConfigurePin(GPIO_PORT_0,GPIO_PIN_7,OUTPUT,PID_GPIO,false);//SPI_PE

#elif(CFG\u HW\u CONFIG==HW\u CONFIG\u BEACON\u REF)
#ifdef CFG\u SPI\u闪存
GPIO\ U配置引脚(SPI\ U GPIO\ U端口、SPI\ U CS\ U引脚、输出、PID\ U SPI\ U EN、true);
GPIO\ U配置引脚(SPI\ U GPIO\ U端口、SPI\ U CLK\ U引脚、输出、PID\ U SPI\ U CLK、false);
GPIO\ U配置引脚(SPI\ U GPIO\ U端口、SPI\ U DO\ U引脚、输出、PID\ U SPI\ U DO、false);
GPIO\ U配置引脚(SPI\ U GPIO\ U端口,SPI\ U DI\ U引脚,输入,PID\ U SPI\ U DI,false);
#结束

GPIO_ConfigurePin(I2C_GPIO_PORT,I2C_SCL_PIN,INPUT,PID_I2C_SCL,false);///这是我添加的新行
GPIO_ConfigurePin(I2C_GPIO_PORT,I2C_SDA_PIN,INPUT,PID_I2C_SDA,false);///这是我添加的新行
#结束
}
//代码段结束

是的,我已经定义I2C\U GPIO\U端口为端口0,I2C\U SCL\U引脚为P0.6,I2C\U SDA\U引脚为P0.7,那么当这两条线路相加时,为什么信标会停止广告呢?有没有一种方法可以将I2C驱动程序与信标参考设计结合使用?

谢谢和问候,

关键词:
设备:
MT\u对话框
离线
最后一次见到:1周4天前
工作人员
已加入:2015-06-08 11:34
嗨,克鲁塔斯,

嗨,克鲁塔斯,

请检查信标参考设计的各种配置,可能有一个地方的conflict,这取决于您的硬件配置。您在使用前是否保留了GPIO引脚?这将提供一个线索,如果有冲突。

谢谢你的对话

克鲁塔斯
离线
最后一次见到:5年1个月前
已加入:2015-07-09 19:57
谢谢你的建议

谢谢你的建议。我试着保留GPIO引脚在我有点困惑。如果你能澄清我的困惑,那将大有帮助。当我写这些保留GPIO的行时
//代码段开始
保留GPIO(SPI\ CLK、I2C\ GPIO\端口、I2C\ SCL\引脚、PID\ I2C\ SCL);
保留GPIO(SPI\ U DI、I2C\ U GPIO\ U端口、I2C\ U SDA\ U引脚、PID\ U I2C\ U SDA);
//代码段结束
代码运行良好,但如果我做了如下所示的更改,它就会停止工作,我不知道为什么。
//代码段开始
预留GPIO(I2C\ U SCL、I2C\ U GPIO\端口、I2C\ U SCL\引脚、PID\ I2C\ U SCL);
预留GPIO(I2C\ U SDA、I2C\ U GPIO\端口、I2C\ U SDA\引脚、PID\ U I2C\ U SDA);
//代码段结束

另外,我正在使用I2C总线使用定义的常量SPI\ U CLK和SPI\ U DI有区别吗?请引导我通过这个。

谢谢和问候,

MT\u对话框
离线
最后一次见到:1周4天前
工作人员
已加入:2015-06-08 11:34
嗨,克鲁塔斯,

嗨,克鲁塔斯,

据我所知,这不会有任何区别,RESERVE\u GPIO中的name参数只是一个名称,在宏RESERVE\u GPIO中没有任何函数。你说的听起来很奇怪。

谢谢你的对话

克鲁塔斯
离线
最后一次见到:5年1个月前
已加入:2015-07-09 19:57
我很抱歉还有一个

很抱歉,代码的另一部分产生了问题
//代码段开始
等待_,直到_I2C_FIFO_为空();
//代码段结束
现在我使用的是PAN1740评估工具,总线上没有I2C设备。因此,如果调用这个宏,它是否会进入一个无休止的等待循环?我可以不使用这个宏而使用I2C吗?我本来打算在固件完成后再把设备连接起来。

谢谢和问候,

MT\u对话框
离线
最后一次见到:1周4天前
工作人员
已加入:2015-06-08 11:34
嗨,克鲁塔斯,

嗨,克鲁塔斯,

是的,这个宏将以无休止的while循环结束。我们不能确定会发生什么,如果你只是删除它,你应该使用驱动程序,因为是和测试你的固件。

谢谢你的对话

克鲁塔斯
离线
最后一次见到:5年1个月前
已加入:2015-07-09 19:57
嗨,对话,

嗨,对话,
我一直在尝试使用SDK提供的驱动程序来读取温度数据从传感器使用I2C。温度数据是2个字节,并存储在一个单一的地址0x00我有麻烦读取第二个字节,因为所有的函数在驱动程序提供的读取一个字节后发送地址。温度传感器为单个地址发送2字节的数据。你能告诉我一个解决方案,连续读取两个字节的数据为一个地址。

谢谢和问候,

克鲁塔斯
离线
最后一次见到:5年1个月前
已加入:2015-07-09 19:57
关闭此问题

关闭此票据问题已在另一个线程中解决。

谢谢和问候,

主题已锁定