你好,
我想用一个传感器与I2C接口以及灯塔。我工作与信标参考设计的起点。虽然每次我试图为i2c总线配置针信标停止广告,原因未知。唯一的变化,我在灯塔periph_setup参考设计。c函数set_pad外围别针被分配的参考设计灯塔。做的更改:
/ /代码片段的开始
空白set_pad_functions(空白)/ /设置gpio端口功能模式
{
#如果(CFG_HW_CONFIG = = HW_CONFIG_SMARTTAG)
GPIO_ConfigurePin (GPIO_PORT_1 GPIO_PIN_4、INPUT_PULLDOWN PID_GPIO,假);
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_6、输出PID_GPIO,假);
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_5,输入、PID_GPIO假);
如果(! sys_startup_flag)
GPIO_ConfigurePin (GPIO_PORT_1 GPIO_PIN_5、输出PID_GPIO,假);/ /绿色领导去减少功耗
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_0、INPUT_PULLUP PID_GPIO,假);
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_3、INPUT_PULLUP PID_GPIO,假);
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_1、INPUT_PULLUP PID_GPIO,假);
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_2、INPUT_PULLUP PID_GPIO,假);
# elif (CFG_HW_CONFIG = = HW_CONFIG_DK)
GPIO_ConfigurePin (GPIO_PORT_1 GPIO_PIN_1、INPUT_PULLUP PID_GPIO,假);/ / PUSH_BUTTON
# elif (CFG_HW_CONFIG = = HW_CONFIG_PVCELL)
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_0、INPUT_PULLDOWN PID_GPIO,假);
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_3、INPUT_PULLDOWN PID_GPIO,假);
# elif (CFG_HW_CONFIG = = HW_CONFIG_SMARTTAG2)
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_1、输出PID_GPIO,假);/ /蜂鸣器-
GPIO_ConfigurePin (GPIO_PORT_1 GPIO_PIN_0、输出PID_GPIO,假);/ /蜂鸣器+
GPIO_ConfigurePin (GPIO_PORT_1 GPIO_PIN_1、INPUT_PULLDOWN PID_GPIO,假);/ / PUSH_BUTTON
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_2、输出PID_GPIO,假);/ /领导
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_CS_PIN、输出PID_SPI_EN, true);
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_CLK_PIN、输出PID_SPI_CLK,假);
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_DO_PIN、输出PID_SPI_DO,假);
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_DI_PIN,输入、PID_SPI_DI假);
GPIO_ConfigurePin (GPIO_PORT_0 GPIO_PIN_7、输出PID_GPIO,假);/ / SPI_PE
# elif (CFG_HW_CONFIG = = HW_CONFIG_BEACON_REF)
# ifdef CFG_SPI_FLASH
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_CS_PIN、输出PID_SPI_EN, true);
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_CLK_PIN、输出PID_SPI_CLK,假);
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_DO_PIN、输出PID_SPI_DO,假);
GPIO_ConfigurePin (SPI_GPIO_PORT SPI_DI_PIN,输入、PID_SPI_DI假);
# endif
GPIO_ConfigurePin (I2C_GPIO_PORT I2C_SCL_PIN,输入、PID_I2C_SCL false); / / / / /这是我添加了的新行
GPIO_ConfigurePin (I2C_GPIO_PORT I2C_SDA_PIN,输入、PID_I2C_SDA false); / / / / /这是我添加了的新行
# endif
}
/ /代码片段
是的我有I2C_GPIO_PORT定义为端口0,I2C_SCL_PIN P0.6和I2C_SDA_PIN P0.7,那么为什么灯塔停止添加广告,当这两条线?有办法使用I2C司机信标参考设计吗?
感谢和问候,
嗨Krutarth,
请检查信标的各种配置参考设计,也许有一个摘要该文某处,这取决于你的硬件配置。你保留的针在使用吗?这将给一个线索是否有冲突。
由于MT_dialog
谢谢你的建议MT_Dialog。我试着保留GPIO管脚,我有点困惑。如果你能澄清我的困惑,帮助了很多。当我为保留GPIO编写这些线
/ /代码片段的开始
RESERVE_GPIO (SPI_CLK I2C_GPIO_PORT、I2C_SCL_PIN PID_I2C_SCL);
RESERVE_GPIO (SPI_DI I2C_GPIO_PORT、I2C_SDA_PIN PID_I2C_SDA);
/ /代码片段结束
代码没问题,但如果我让这些变化如下所示它停止工作,我不知道为什么。
/ /代码片段的开始
RESERVE_GPIO (I2C_SCL I2C_GPIO_PORT、I2C_SCL_PIN PID_I2C_SCL);
RESERVE_GPIO (I2C_SDA I2C_GPIO_PORT、I2C_SDA_PIN PID_I2C_SDA);
/ /代码片段结束
也我使用I2C总线使用已定义的常量SPI_CLK SPI_DI产生影响?请指导我完成这一点。
感谢和问候,
嗨Krutarth,
据我所知这个不应该有差别,RESERVE_GPIO参数名称只是一个名字,没有任何宏观RESERVE_GPIO函数。你所提到的听起来很奇怪。
由于MT_dialog
我很抱歉有另一部分代码创建问题
/ /代码片段的开始
WAIT_UNTIL_I2C_FIFO_IS_EMPTY ();
/ /代码片段
现在我用PAN1740评估工具和I2C总线上的设备。如果调用这个宏会成一个环形等待结束吗?我可以不使用这个宏使用I2C吗?我计划有设备连接后我完成了固件。
感谢和问候,
嗨krutarth,
是的这个宏将在无尽的while循环结束。我们不能肯定将会发生什么如果你删除它,你应该使用驱动程序和测试你的固件。
由于MT_dialog
嗨,对话框中,
我一直在试图使用SDK提供的驱动程序使用I2C从传感器读取温度数据。2字节的温度数据和存储在一个单一的地址0 x00以来我很难阅读第二个字节中的所有函数提供的司机后你们读一个字节发送地址。温度传感器发送单地址2字节的数据。你能请告诉我解决阅读两个字节的数据连续单地址。
感谢和问候,
关闭这张票另一个线程的问题已经解决了。
感谢和问候,