This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3100:CC3100代码的 STM32F0端口

Guru**** 2540720 points
Other Parts Discussed in Thread: CC3100

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/593646/cc3100-stm32f0-port-of-cc3100-code

器件型号:CC3100

您好!

我已经为具有 OpenSTM32的项目使用了"STM32F4_Add_ON_for_CC3100_SDK"。

如果我运行天气示例、我将获得 SPI 写入和 SPI 读取函数的以下控制台输出:

获取天气应用程序-版本1.2.0

写入:len= 4、0x65、0x87、0x78、0x56
读取:len= 8、0x00、0x00、0x00、0xBC、 0xDC、0xCD、0xAB、0x08

此消息之后,UC 在硬默认处理程序中挂起

调试显示程序在_SLDrvRxHdrRead()函数中挂起:

我的 SPI 读取函数如下所示:

int spi_read (fd_t fd、unsigned char * pBuff、int len)

   unsigned char bubuff [80];
   unsigned char ret;

   assert_CS();
   RET = HAL_SPI_Receive (SpiHandle、pBuff、len、SPI_TIMEOUT_MAX);
   DEASBERT_CS();

#if debug
   sprintf (buff、"ret=%d、len=%d、0x%02x、0x%02x、 0x%02x、0x%02x、0x%02x、0x%02x、0x%02x、 0x%02x\n\r"、
         RET、len、pBuff[0]、pBuff[1]、pBuff[2]、 pBuff[3]、pBuff[4]、pBuff[5]、pBuff[6]、pBuff[7]);
   cli_Write (buff);
#endif

   返回 len;

我最近发布了一个相关问题、它解决了项目 SPI-dBUG.tool 的问题。

感谢你的帮助

奥托帕茨胡伯

慕尼黑应用科学大学

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Otto、

    在调用 DEASBERT_CS()之前尝试添加延迟。
    尤其是在使用 DMA 时、您需要确保在事务完成之前未取消对该行的置位。

    BR、
    Kobi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Koby,
    感谢您的帮助、
    我在调用 HAL_SPI_Receive ()前后包含了多个 nops。
    这可能是分割问题吗?
    示例项目是 Cortex-M3、我使用的是 Cortex-M0。