【ST NUCLEO-U5A5ZJ-Q开发板测评】解决SPI GPDMA传输
<div class='showpostmsg'><p><a href="https://bbs.eeworld.com.cn/thread-1271933-1-1.html">【ST NUCLEO-U5A5ZJ-Q开发板测评】SPI DMA如何配置传输 </a></p><p>这里我遇到了问题,后面用逻辑分析仪分析时序,发现只传了一个字节就停止了。后面找到了官方的例程分析了一下,找到的原因。现在就配置记录如下:</p>
<p> </p>
<p> 还有就是需要重写中断回调函数:</p>
<pre>
<code>void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi)
{
/* Set the SSD1306 state to ready */
SSD1306_Disp.state = SSD1306_STATE_READY;
}
void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi)
{
SSD1306_Disp.state = SSD1306_SPI_ERROR;
}
void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi) /* Derogation MISRAC2012-Rule-8.13 */
{
/* Prevent unused argument(s) compilation warning */
//SSD1306_Disp.state = SSD1306_STATE_READY;
/* NOTE : This function should not be modified, when the callback is needed,
the HAL_SPI_TxHalfCpltCallback should be implemented in the user file
*/
}</code></pre>
<p>这样就解决问题了,但是,在中断传结束之后,如果不延时1毫秒,就会卡死,这样有点影响性能:</p>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>你这用的是STM32CubeMX配置的吗?看着怎么感觉不太一样。</p>
wangerxian 发表于 2024-2-18 17:00
你这用的是STM32CubeMX配置的吗?看着怎么感觉不太一样。
<p>是用STM32CubeIDE里面的STM32CubeMAX来配置的,现在新的配置出来的MDK工程会少东西,被绑死了。</p>
lugl4313820 发表于 2024-2-18 17:03
是用STM32CubeIDE里面的STM32CubeMAX来配置的,现在新的配置出来的MDK工程会少东西,被绑死了。
<p>很多都在底层给写死了,利弊感觉都存在。因为不能修改底层,也看不到配置了哪些寄存器。</p>
wangerxian 发表于 2024-2-18 17:17
很多都在底层给写死了,利弊感觉都存在。因为不能修改底层,也看不到配置了哪些寄存器。
<p>现在ST就是想让开发者快速上手,对于我们这种新手来说,还算友好。但是我看到我们国产的武汉芯源,他们的文档比ST,我感觉比较适合我们中文的开发者。</p>
lugl4313820 发表于 2024-2-18 19:38
现在ST就是想让开发者快速上手,对于我们这种新手来说,还算友好。但是我看到我们国产的武汉芯源,他们的 ...
<p>是啊,中文文档看着比英文流畅多了。</p>
页:
[1]