This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

例程不能正常使用问题

SDK  nRF5_SDK_15.0.0_a53641a

例程  nRF5_SDK_15.0.0_a53641a\examples\peripheral\twi_sensor

没有修改任何内容,编译烧录到nordic开发板后,

执行到 main函数中 LM75B_set_mode()函数,出现阻塞,没有正常往下执行。阻塞的表达式为 while (m_xfer_done == false);

pics:

是因为SDK的原因吗?

Parents Reply
  • SDK : nRF5_SDK_15.0.0_a53641a

    examples: nRF5_SDK_15.0.0_a53641a\examples\peripheral\twi_sensor

    I didn't change anything. After build and download to the Nordic development board,

    The  LM75B_set_mode()  function in the main function is blocked and not executed normally. The blocking expression is while (m_xfer_done == false);

    After I used the SDK: nRF5_SDK_15.2.0_9412b96 , also appeared the above situation

    Please help to answer it, thank you

Children
  • Hi,

    The blocking expression while (m_xfer_done == false); is waiting for an acknowledgement of the transfer from the slave, as specified in the I2C protocol. Usually this issue occurs due to the sensor not being connected properly.

    I would also like to point out that the DK does not contain a LM75B temperature sensor on board. It must be connected externally. The twi_sensor example from the SDK is provided to demonstrate how communication with an arbitrary TWI slave can be implemented.
     
    Could you provide me with the following details: Which specific development kit are you using?
    How have you connected the LM75B sensor to your DK, which pins have you used?

    Best regards,
    Karl

  • Hi,

    I'm using the PCA10040 V1.2.1 development board. I thought there is have a LM75B temperature sensor on the pca10040 V1.2.1 board.

  • Hi,

    I understand. Unfortunately I have to disappoint you - there is no LM75B sensor onboard the nRF52832 DK.
    Could you provide me with a reference to the documentation or resource that gave you the impression that there were?
    That way I can assure that there are no misleading or inaccurate resources out there, to avoid confusion in the future.

    Best regards,
    Karl

  • Sorry, It's my subjective guess.
    When I used the TWI peripheral  to debug my board that had temperature sensor.
    First, I transplanted the nrf_drv_twi_tx function of the twi routine,modified the address of the sensor  and the address of the writable register, and configured the sdk_config.h of ble_app_uart routine according to the sdk_config.h of the twi_sensor routine. 
    Then, I used the  oscilloscope to collect SCL clock line wareform, found there is no high and low level conversion.
  • Hi,

    I am not sure I understand you correctly. You would like to add a TWI slave to the ble_app_uart example, is this correct?
    If so, what do you mean when you say "I transplanted the nrf_drv_twi_tx function"?

    Have you also initialized the TWI instance, and included the necessary nrf_drv_twi, nrfx_twi and nrfx_twim in your project?
    I think it would be beneficial to my understanding of your issue if you could share the code you are running here.

    lisi said:
    Then, I used the  oscilloscope to collect SCL clock line wareform, found there is no high and low level conversion.

    Does this mean that you were unable to see anything on the SCL pin, after having built and flashed your device with your modified ble_app_uart example?

    Best regards,
    Karl

Related