1568|4

1536

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

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

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

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

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

uint8_t aTxBuffer1[] = {0x74,0x31,0xff,0xff,0xff};

uint8_t aTxBuffer2[] = {0x74,0x32,0xff,0xff,0xff};

uint8_t aTxBuffer3[] = {0x74,0x33,0xff,0xff,0xff};

 

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

uint8_t aRxBuffer[5];

 

其控制的主程序如下:

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(&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[1] = 0x30;
 }
}

 

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

图1  发送指令

 

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

图2  点亮LED1

图3  点亮LED2

 图4  点亮LED3  

 

此帖出自无线连接论坛

最新回复

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html   详情 回复 发表于 2023-1-12 09:37
点赞 关注
 

回复
举报

7063

帖子

11

TA的资源

版主

沙发
 

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

此帖出自无线连接论坛

点评

串口DMA不定长数据接收一般通过串口空闲中断实现,也可以通过标志符,不过还是空闲中断比较好用  详情 回复 发表于 2023-1-4 10:35
我也没试过,应该可以,需要添加标识符来辅助处理。  详情 回复 发表于 2023-1-4 08:39
 
 

回复

1536

帖子

1

TA的资源

五彩晶圆(初级)

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

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

此帖出自无线连接论坛
 
 
 

回复

6562

帖子

9

TA的资源

版主

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

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

此帖出自无线连接论坛
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

1万

帖子

203

TA的资源

管理员

5
 

测评汇总:免费申请|ST NUCLEO-U575ZI-Q https://bbs.eeworld.com.cn/thread-1228653-1-1.html

此帖出自无线连接论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表