当前位置: 首页 > wzjs >正文

苏格网站建设怎样在百度上发布自己的文章

苏格网站建设,怎样在百度上发布自己的文章,wordpress电影资源网站,常德建设企业网站知不足而奋进 望远山而前行 目录 文章目录 前言 学习目标 学习内容 开发流程 串口功能配置 串口功能开启 串口中断配置 串口参数配置 查询配置结果 发送功能测试 中断接收功能测试 printf配置 DMA收发 配置 DMA发送 DMA接收(方式1) DMA接收(方式2) 总结 前言…

知不足而奋进 望远山而前行


目录

文章目录

前言

学习目标

学习内容

开发流程

串口功能配置

串口功能开启

串口中断配置

串口参数配置

查询配置结果

发送功能测试

中断接收功能测试

printf配置

DMA收发

配置

DMA发送

DMA接收(方式1)

DMA接收(方式2)

总结


前言

在嵌入式系统开发中,掌握串口通信是至关重要的一环。串口通信作为微控制器与外部设备或其他微控制器之间的主要通信方式,在各种嵌入式应用中起着重要作用。本文将介绍如何通过STM32CubeMX配置串口功能,并掌握串口发送、接收以及使用DMA进行数据传输的方法。同时,我们还将讨论如何配置printf函数,使其能够在串口上输出调试信息,以及如何处理串口接收中断。通过学习这些内容,读者将能够在嵌入式系统开发中更加灵活地应用串口通信功能。


学习目标

  • 熟悉STM32CubeMX配置流程
  • 掌握串口发送和接收
  • 掌握串口DMA发送和DMA接收
  • 掌握printf配置

学习内容

开发流程

  1. 配置芯片串口功能
  2. 编写串口代码
  3. 调试

串口功能配置

串口功能开启

  • Connectivity下选择合适的串口,这里选择USART1
  • 配置模式为异步,Asynchronous
串口中断配置

  • NVIC Settings下,打开串口中断。
串口参数配置

  • Parameter Settings中,根据情况配置串口的参数。
查询配置结果

GPIO Setting中可以显示默认的IO引脚

右侧芯片引脚部分会显示配置的结果。

发送功能测试

/* USER CODE BEGIN WHILE */
uint8_t cnt = 0;
while (1)
{HAL_UART_Transmit(&huart1, &cnt, 1, HAL_MAX_DELAY);cnt++;HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */
}

通过HAL_UART_Transmit函数发送数据。

中断接收功能测试

/* USER CODE BEGIN WHILE */
HAL_UART_Receive_IT(&huart1, usart1_buffer, USART1_BUFFER_LEN);
while (1)
{/* USER CODE END WHILE *//* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
/* USER CODE BEGIN 0 */
#define USART1_BUFFER_LEN 1
uint8_t usart1_buffer[USART1_BUFFER_LEN];void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {HAL_UART_Transmit(&huart1, (const uint8_t *)usart1_buffer, USART1_BUFFER_LEN, HAL_MAX_DELAY);// 开启中断接收HAL_UART_Receive_IT(&huart1, usart1_buffer, USART1_BUFFER_LEN);
}
/* USER CODE END 0 */

接收任意个字节

触发空闲中断接收

HAL_UARTEx_ReceiveToIdle_IT(&huart1, usart_buffer, RX_BUF_LEN); // 常用

使用Idle空闲中断回调

void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){usart_buffer[Size] = '\0';printf("callback2: %s\n", usart_buffer);HAL_UARTEx_ReceiveToIdle_IT(&huart1, usart_buffer, RX_BUF_LEN); // 常用
}

printf配置

#include <stdio.h>
int fputc(int ch, FILE* f) {HAL_UART_Transmit(&huart1, (uint8_t *)&ch,1, 0xFFFF);return ch;
}

注意:如果加了printf无法打印日志,记得在 options 里勾选 MicroLIB

DMA收发

配置

DMA发送
/* USER CODE BEGIN WHILE */
uint8_t cnt = 0;
while (1)
{HAL_UART_Transmit_DMA(&huart1, &cnt, 1);cnt++;HAL_Delay(1000);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */
}
DMA接收(方式1)
  • 触发接收
HAL_UART_Receive_DMA(&huart1, usart_buffer, RX_BUF_LEN); //  常用!
  • 接收回调函数
#define RX_BUF_LEN    12
uint8_t usart_buffer[RX_BUF_LEN + 1];void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){// 为了打印字符串usart_buffer[RX_BUF_LEN] = '\0';printf("callback1: %s\n", usart_buffer);// 再次启用中断接收(收到指定个字节才执行)HAL_UART_Receive_DMA(&huart1, usart_buffer, RX_BUF_LEN);  // 常用!}
DMA接收(方式2)

通过空闲中断事件接收,即发生空闲了才进行数据处理

  • 触发接收
HAL_UARTEx_ReceiveToIdle_DMA(&huart1, usart_buffer, RX_BUF_LEN); // 常用!!!
  • 接收回调函数
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){// 为了打印字符串usart_buffer[Size] = '\0';printf("callback2[%d]: %s\n", Size, usart_buffer);// 再次启用接收(RX_BUF_LEN为最大接收数量)HAL_UARTEx_ReceiveToIdle_DMA(&huart1, usart_buffer, RX_BUF_LEN);  // 常用!}

总结

通过本文的学习内容,读者可以熟悉STM32CubeMX的串口配置流程,掌握串口发送和接收的基本方法,并了解如何使用DMA进行串口数据传输。在串口发送功能测试中,通过HAL_UART_Transmit函数实现了简单的数据发送;在中断接收功能测试中,通过HAL_UART_Receive_IT函数实现了中断接收,并介绍了触发空闲中断接收的方法。此外,还讨论了如何配置printf函数,使其能够在串口上输出调试信息。最后,通过DMA收发部分的介绍,读者可以了解如何配置DMA进行高效的串口数据传输,包括DMA发送和DMA接收的两种方式。通过这些学习内容,读者将能够在嵌入式系统开发中灵活运用串口通信功能,为实际应用开发提供技术支持。

http://www.dtcms.com/wzjs/465051.html

相关文章:

  • 网站目录访问沈阳网站制作公司
  • 游戏网站做代理怎样在百度上宣传自己的产品
  • unity 做网站百度seo通科
  • 做网站项目流程人工智能培训心得体会
  • WordPress高级投稿win7一键优化工具
  • 超市网站模板aso100官网
  • 评论回复网站怎么做的移动端排名优化软件
  • 跨境电商网站开发文档百度seo费用
  • 在域名上建设网站营销培训课程
  • 给自己做网站山东搜索引擎优化
  • 网站建设维保合同免费做网站网站的软件
  • 丹阳网站建设多少钱seo优化教程自学网
  • 网络服务提供者不履行法律行政法规规定的seo整站优化外包公司
  • 没有网站怎么做网络推广百度seo排名优化排行
  • 湖州网站建设公司哪家好福州seo扣费
  • 昆山做网站的公司搜索引擎推广的费用
  • 西安个人网站建设免费域名
  • 广西哪家公司做网站的宁波seo外包优化
  • 网站做任务赚佣金山东东营网络seo
  • 用c 做一个小网站怎么做网站策划是什么
  • 佛山网站建设优势万网app下载
  • 如何查询网站空间商济南seo培训
  • 网站头部设计代码模板建站平台
  • 中级网站开发工程师 试题百度网站搜索排名
  • 网站开发工程师职位要求室内设计培训班学费一般多少
  • 系统集成销售和网站建设销售中国网站排名网
  • 做门户网站私活多少钱搭建一个网站需要多少钱?
  • 聊城 网站建设搜索引擎论文3000字
  • wordpress禁止访问后台网站推广和seo
  • 网站建设技术进行开发北京网站制作推广