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

STM32 SPI僅做傳送如何做成多組串接還可以利用DMA發動

[复制链接]
typhoon5168 提问时间:2019-5-10 08:55 /
請教各位先進, 因為需要做成一對多的SPI控制, 例如一對二
STM32當成Master僅做data transmit, NSS 需要兩個GPIO接腳,
傳輸時利用DMA來發動, GPIO的軟體控制應該怎麼做呢?

感謝分享.
收藏 评论3 发布时间:2019-5-10 08:55

举报

3个回答
select326 回答时间:2019-5-10 09:32:20
传输前,先使能NSS,在中断中回调,然后失能。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

songshiqun2010 回答时间:2019-5-10 09:20:01
在DMA的传输完成中断中操作NSS即可。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

typhoon5168 回答时间:2019-5-10 10:17:04
songshiqun2010 发表于 2019-5-10 09:20
在DMA的传输完成中断中操作NSS即可。

感謝, 所以我應該在中斷裡加 " " 這一段來 enable NSS ?
然後在 HAL_SPI_TxCpltCallback() 裡面去 disable NSS ?
謝謝解答

void DMA1_Stream0_IRQHandler(void)
{
  /* USER CODE BEGIN DMA1_Stream0_IRQn 0 */

" check data for nss1 or nss2 "
" enable nss1 or nss2"

  /* USER CODE END DMA1_Stream0_IRQn 0 */
  HAL_DMA_IRQHandler(&hdma_spi2_tx);
  /* USER CODE BEGIN DMA1_Stream0_IRQn 1 */

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