请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

SRM32G031SP11发2,SPI1收到的数据不对,经过排查为中断问题,想请教HAL库SPI中断的用法

[复制链接]
学C看B 提问时间:2023-4-21 13:50 / 未解决
收藏 评论5 发布时间:2023-4-21 13:50

举报

5个回答
butterflyspring 回答时间:2023-4-21 14:48:19

这个目录下有个例程,可以参考着用

STM32Cube_FW_G0_V1.5.0\Projects\STM32G081B-EVAL\Examples\SPI\SPI_FullDuplex_ComIT_Master
xmshao 回答时间:2023-4-21 16:12:50
你说得太笼统了。


想请教你所说的经排查为中断问题,具体什么中断问题?


接收中断问题?发生中断问题  接收溢出中断问题?还是中断优先级引起的竞争方面的问题?


你既然用库,当使用相应中断的发送或接收API时,基本的东西都配置好了。


当发生中断时就自然 会 跳到相应中断服务程序里,你只需在相应服务程序里加点自己的东西。


具体到这里,我们的库函数都给你准备好了相应的回调函数,做填空式的用户代码添加即可。
学C看B 回答时间:2023-4-21 16:37:15

butterflyspring 发表于 2023-4-21 14:48
这个目录下有个例程,可以参考着用</p>
<p>STM32Cube_FW_G0<em>V1.5.0\Projects\STM32G081B-EVAL\Examples\SPI\SPI</em> ...

请问有链接吗

学C看B 回答时间:2023-4-21 16:41:47

xmshao 发表于 2023-4-21 16:12
你说得太笼统了。</p>
<p>

我在主函数当中使用HAL_SPI_TransmitReceive_IT(&hspi2, (uint8_t )SPI2_WriteData, (uint8_t )SPI2_ReadData, 2);来触发中断,但是经过DEGBUG的时候发现IT.C当中的中断函数HAL_SPI_IRQHandler(&hspi2);并不能运行到void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi)回调函数。

xmshao 回答时间:2023-4-21 17:12:50
如果你使用CubeMx配置的话,别忘了在图形化界面使能spi的中断

否则即使发生了相应事件也没法进入中断,更别说调用回调函数了。


参考代码 在G0系列的Cube库里就有。或者到www.st.com/stm32


搜索STM32CubeG0。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版