标题: H563测评开箱
中奖又快一个月了,中间参加ST公司的广州研讨会又得了一块H563的开发板,就一起展示一下了。
看着还是蛮精致的,到网上下载了STM32Cube_FW_H5_V1.1.0,因为后期打算用H563,所以用H563先简单跑个例程。(STM32CubeIDE用的少,本来想弄个TCP SEVER的,没找到合适的例程)
用"D:\STM32CubeH5_V1.1.0\STM32Cube_FW_H5_V1.1.0\Projects\NUCLEO-H563ZI\Examples\UART\UART_TwoBoards_ComPolling\STM32CubeIDE\.project"
原例程是需要两个板子进行收发比较,简单改了一下,变成用串口调试助手控制H563的LED。
将例程中原来的发送字符串改掉
/* Buffer used for transmission */
//uint8_t aTxBuffer[] = " **** UART_TwoBoards_ComPolling **** **** UART_TwoBoards_ComPolling **** **** UART_TwoBoards_ComPolling **** ";
uint8_taTxBuffer[] = "LED";
/* Buffer used for reception */
uint8_taRxBuffer[RXBUFFERSIZE + 1]; /* 多留一个字节 */
增加一个LED2的初始化
BSP_LED_Init(LED2);
注释掉原来的接收处理
// /*##-2- Put UART peripheral in reception process ###########################*/
// if (HAL_UART_Receive(&huart2, (uint8_t *)aRxBuffer, RXBUFFERSIZE, 5000) != HAL_OK)
// {
// Error_Handler();
// }
在循环语句里增加以下处理
/*##-2- Put UART peripheral inreception process ###########################*/
if (HAL_UART_Receive(&huart2,(uint8_t *)aRxBuffer,RXBUFFERSIZE + 1, 5000) != HAL_OK)
{
BSP_LED_On(LED3);
BSP_LED_Off(LED1);
BSP_LED_Off(LED2);
} else {
/*##-3-Compare the sent and received buffers ##############################*/
if (!Buffercmp((uint8_t*)aTxBuffer, (uint8_t *)aRxBuffer,RXBUFFERSIZE)) {
BSP_LED_Off(LED3);
if (aRxBuffer[3] == '2') {
BSP_LED_On(LED2);
BSP_LED_Off(LED1);
} else if (aRxBuffer[3] == '1'){
BSP_LED_On(LED1);
BSP_LED_Off(LED2);
}
} else {
BSP_LED_On(LED3);
BSP_LED_Off(LED1);
BSP_LED_Off(LED2);
}
}
这样就可以
通过串口调试助手用字符串来控制LED的点亮。
程序读取数据,5s没收到数据,则点亮红灯LED3,
收到LED1则点亮绿灯LED1,
收到LED2点亮黄灯LED2。
后续,这块H563的调试端口有点问题,时不时的不能接通。
插上电脑,有时枚举不出STLINK,那块H503则没有类似现象。
仅仅修改了例程里面的MAIN.c
3.62 KB。
---------------------
作者:xing650721
链接:https://bbs.21ic.com/icview-3339730-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。