STM32CubeMX之串口的使用 (阻塞模式) |
您所在的位置:网站首页 › 如何关闭串口接收中断信息 › STM32CubeMX之串口的使用 (阻塞模式) |
环境: 开发板:STM32F4探索者(正点原子) 一. 进行项目的必要配置 时钟配置调试配置如果不大清楚,可以看 STM32CubMX工程创建(点亮LED) 二. 串口选择 查看 STM32F4探索者 开发板的原理图,如下图所示,我们可以看到USB转串口是在USART1 因此我们在 STM32CubeMX 中如下图进行勾选,并进行配置 这里的配置一般与之通信的芯片相对应,当你通信不起来的时候,一般要注意查一下这里 之后就可以点击代码生成了 三. 生成的代码我们可以在 usart.c 中,找到我们生成的代码 在 functions 可以找到使用串口的相关函数,接收和发送函数 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) 第一个参数,串口实例,如 huart1第二个参数,发送的数据第三个参数,发送的数据的大小第四个参数,超时时间 HAL_StatusTypeDef HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout) 第一个参数,串口实例,如 huart1第二个参数,接收的数据的缓存块(数组)第三个参数,接收 N 个字节的数据第四个参数,超时时间,如果没有接收 N 个字节,就是超时 五. 串口测试在 主函数 中进行如下添加: 功能为 发送 hello usart1\r\n ,之后接收10个字节数据,若接收到10个字节数据,就发送接收到的数据,若在5000ms之内没有接收到数据,就打印接收超时运行结果 从上图,我们可以看到接收函数,只有接收够且只有10个字节,才会返回成功,否则都是接收超时 注意 : 首先我们要把代码放在 main 函数中,并且,按照 STM32CubeMX 的规则,要把用户增加的代码放置在 BEGIN 和 END 之间,如上图中的 /* USER CODE BEGIN WHILE */ //用户代码 /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //用户代码 /* USER CODE END 3 */ 否则,再次使用 STM32CubeMX 生成代码时,会丢失不在BEGIN 和 END 之间的代码 -----------------------------------------------结束-------------------------------------------------------- 文章有价值,请各位看官点个赞,关注我或者点右边打个赏吧! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |