qingehao
qingehao
> 每个 spi 总线都有一个 struct stm32_spi 结构体变量的吧,因此,各个 wait_event 变量是独立的。 XXX_TxRxCplt_EVENT XXX_TxCplt_EVENT XXX_RxCplt_EVENT 这几个宏定义一个就够了吧。 set_wait_event 函数也不用区分是哪个总线。 spi_event的事件控制块是所有总线共用的,假设宏定义使用统一的SPI_XXXXCplt_Event,当SPI1总线等待传输完成事件(SPI_XXXXCplt_Event)的时候,别的线程调用SPI2总线传输数据,SPI2数据量很小,很快完成了,SPI2会调用spi_event发送SPI_XXXXCplt_Event事件。此时,如果使用SPI1总线的优先级较高,则SPI1总线收到了该事件,会认为是它完成了传输,造成了冲突。
> 抱歉,最近忙没看到。我明白你的意思的,现在我的event控制块不是定义在stm32_spi结构体中,意味着系统中所有总线共用这个event控制块,所以等待的事件需要区分开哪一个总线。你说的可以将event控制块定义在总线结构体中,这样子每个总线拥有一个事件控制块,这样子也可以,两种方式。
> 好想复现但没接触过硬件,能出一个从0开始复现的视频吗?感谢不尽 暂时没有这个计划,抱歉
看提示,应该是解析域名错误,核对一下mqtt服务器地址是否正确,格式是否规范。另,你应该用的不是我的工程,具体问题你自己多参考相关例程。