jinglixixi 发表于 2023-1-3 08:50

[ ST NUCLEO-U575ZI-Q 测评]+ 以指令方式控制LED灯

本帖最后由 jinglixixi 于 2023-1-4 08:45 编辑

<p>为了给后续的设计的检查,先测试一下以指令方式控制LED灯。</p>

<p>开发板上有红绿蓝3个LED灯,为控制它们的亮灭,这里也为它们分配了3个指令,并存放在数组中,其指令内容如下:</p>

<p>uint8_t aTxBuffer1[] = {0x74,0x31,0xff,0xff,0xff};</p>

<p>uint8_t aTxBuffer2[] = {0x74,0x32,0xff,0xff,0xff};</p>

<p>uint8_t aTxBuffer3[] = {0x74,0x33,0xff,0xff,0xff};</p>

<p>&nbsp;</p>

<p>接收的指令也被存放到数组中,其定义为:</p>

<p>uint8_t aRxBuffer;</p>

<p>&nbsp;</p>

<p>其控制的主程序如下:</p>

<pre>
<code class="language-cpp">int main(void)
{
HAL_Init();
SystemClock_Config();
SystemPower_Config();
MX_GPIO_Init();
MX_ICACHE_Init();
MX_USART2_UART_Init();
BSP_LED_Init(LED1);
BSP_LED_Init(LED2);
BSP_LED_Init(LED3);
BSP_LED_Off(LED1);
BSP_LED_Off(LED2);
BSP_LED_Off(LED3);
while (1)
{
    HAL_UART_Receive(&amp;huart2, (uint8_t *)aRxBuffer, 5, 5000);
    if (Buffercmp((uint8_t *)aTxBuffer1, (uint8_t *)aRxBuffer, 5)==0)
    {
      BSP_LED_On(LED1);
            BSP_LED_Off(LED2);
      BSP_LED_Off(LED3);
    }
       
    if (Buffercmp((uint8_t *)aTxBuffer2, (uint8_t *)aRxBuffer, 5)==0)
    {
      BSP_LED_On(LED2);
            BSP_LED_Off(LED1);
      BSP_LED_Off(LED3);
    }
       
    if (Buffercmp((uint8_t *)aTxBuffer3, (uint8_t *)aRxBuffer, 5)==0)
    {
      BSP_LED_On(LED3);
      BSP_LED_Off(LED1);
      BSP_LED_Off(LED2);
    }
    aRxBuffer = 0x30;
}
}
</code></pre>

<p>&nbsp;</p>

<p>经程序的编译下载,即可提供串口调试工具来向开发板发送指令,其界面如图1所示。</p>

<p></p>

<p>图1&nbsp; 发送指令</p>

<p>&nbsp;</p>

<p>相应的控制效果如图2至图4所示,其中t1指令用来点亮绿色LED,t2指令用来点亮蓝色LED,t3指令用来点亮红色LED。</p>

<p> 图2&nbsp; 点亮LED1</p>

<p> 图3&nbsp; 点亮LED2</p>

<p> &nbsp;图4&nbsp; 点亮LED3&nbsp;&nbsp;</p>

<p>&nbsp;</p>

lugl4313820 发表于 2023-1-3 13:28

<p>这个牛哦,我还没有搞定DMA不定长接收。DMA不定长中断可以实现吗?</p>

jinglixixi 发表于 2023-1-4 08:39

lugl4313820 发表于 2023-1-3 13:28
这个牛哦,我还没有搞定DMA不定长接收。DMA不定长中断可以实现吗?

<p>我也没试过,应该可以,需要添加标识符来辅助处理。</p>

秦天qintian0303 发表于 2023-1-4 10:35

lugl4313820 发表于 2023-1-3 13:28
这个牛哦,我还没有搞定DMA不定长接收。DMA不定长中断可以实现吗?

<p>串口DMA不定长数据接收一般通过串口空闲中断实现,也可以通过标志符,不过还是空闲中断比较好用</p>

okhxyyo 发表于 2023-1-12 09:37

<p>测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html</p>
页: [1]
查看完整版本: [ ST NUCLEO-U575ZI-Q 测评]+ 以指令方式控制LED灯