
STM32C031C6开发板带有串口通讯的功能,可以通过板载的ST_LINK与电脑进行通讯,不需要另接USBtoTTL转换板。其基本的系统就包含了一个用户LED、一个用户按键和配置了UART2的串口通讯,通过CubeMX生成代码后就可以直接使用printf函数来向电脑发送数据。下面是CubeMX的默认设置截图: 按照默认的设置,可以直接使用重定向函数printf来发送数据到电脑串口助手: 串口接收的实验准备启用中断接收的功能,但我找不到如何设置,最后还是禁用了默认的串口设置,手动设置了uart2才获得了成功: 然后再主程序中启用指定长度的中断接收功能,代码如下: __HAL_UART_ENABLE_IT(&huart2,UART_IT_IDLE); //打开串口空闲中断 HAL_UART_Receive_IT(&huart2,RxBuff,64); //启用UART2接收中断 但这样接收不定长的数据却出现了问题,每次接收到的数据依次排在字符串的后面,如下图: 一定要接收满指定的长度之后才回到字符串首。 最后我改用单个字符中断的方式来接收不定长的数据: __HAL_UART_ENABLE_IT(&huart2,UART_IT_RXNE); //打开串口接收中断 HAL_UART_Receive_IT(&huart2,&RxByte,1); //启用UART2接收中断 同时添加了接收中断处理函数: 然后在主循环中根据变量RxLen的值来判断和处理,RxLen是本次接收到字符的个数,也就是字符串的长度。在处理完之后还需要将其复零: 这样就可以顺利接收到不定长的字符串了: |
【新品发布】STM32C0 三大子产品线齐发,精准适配价格敏感应用(文末有奖)
STM32C031芯片串口的Modbus特性
NUCLEO-C031C6开发板测试7——硬件SPI驱动TFT彩屏显示
NUCLEO-C031C6开发板测试6——驱动TFT彩屏显示
NUCLEO-C031C6开发板测试4——I2C驱动日历时钟芯片
STM32C09x和STM32C051:工业应用性价比优化的关键选择
STM32怎么选型
STM32C031芯片串口的Modbus特性
狂欢三】STM32C031使用TIM定时器DMA方式实现WS2812彩灯输出(三)
【狂欢三】STM32C031使用TIM定时器DMA方式实现PWM输出(二)
晕!编辑一下,中间的文字就全部丢失了,仅剩开头一段文字及照片。
重新编辑了帖子,首次上传的图片就全留在末尾了。