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

浙江省建设工程质量安全协会网站怎么自己创建网站

浙江省建设工程质量安全协会网站,怎么自己创建网站,深圳在哪些网站上面做推广,视频app制作知不足而奋进 望远山而前行 目录 文章目录 前言 学习目标 学习内容 开发流程 串口功能配置 串口功能开启 串口中断配置 串口参数配置 查询配置结果 发送功能测试 中断接收功能测试 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/386668.html

相关文章:

  • 男的和女的做那种短视频网站网络营销策划书格式
  • 房地产网站建设与优化分析山东seo推广公司
  • 百度公司网站建设网络优化工程师是干什么的
  • 短视频seo公司指定关键词排名优化
  • 网站开发什么语音最好2023年国际新闻大事件10条
  • 网站制作的步骤不包括哪些网站建设的意义和目的
  • 竞价培训班seo培训
  • 信息类网站怎么做网络营销推广手段
  • 做网站要学什么知识电销精准客户资源
  • 怎样建立自己的网站卖东西百度seo关键词优化排行
  • 网站模板 素材java培训学费多少钱
  • 镇江网站建设一般多少钱线上营销活动有哪些
  • 兼职网站制作114黄页
  • 如何建网站卖东西上海专业排名优化公司
  • 网站建设中 图片推广普通话ppt课件
  • 网上购物平台类型有哪些企业网站seo推广方案
  • photoshop网站模板设计教程视频seo优化专员工作内容
  • 自己创建网站容易吗天津百度网站排名优化
  • 做兼职工作上哪个网站招聘网站seo方案
  • 民宅挂在民宿网站上 保洁谁做开封seo推广
  • 北京网站制作公司有哪些营销与销售的区别
  • 石家庄公司的网站设计网店运营与推广
  • mac上用wordpress网站建设推广优化
  • 成都网页制作设计全国最好网络优化公司
  • 网站共享备案可以申请支付接口商丘seo博客
  • wordpress价格比较模板北京seo供应商
  • 中山古镇做网站的公司关键词排名优化公司哪家强
  • 微网站设置免费网络营销方式
  • 能看任何网站的浏览器seo外链软件
  • 葫芦岛市住房和城乡建设局网站前端培训班一般多少钱