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

二维码网站建设源码工程项目管理系统

二维码网站建设源码,工程项目管理系统,舆情信息,山东省建设从业人员管理系统入口这篇文章将详细介绍 串口 发送数据#xff0c;接受数据。 文章目录 前言一、串口的基础知识二、cubeMX 配置三、自动生成代码解析四、串口发送数据函数五、使用串口收发数据点亮 led重定向函数#xff1a; 总结 前言 实验开发板#xff1a;STM32F103C8T6。所需软件#xf… 这篇文章将详细介绍 串口 发送数据接受数据。 文章目录 前言一、串口的基础知识二、cubeMX 配置三、自动生成代码解析四、串口发送数据函数五、使用串口收发数据点亮 led重定向函数 总结 前言 实验开发板STM32F103C8T6。所需软件keil5 cubeMX 。实验目的了解 串口的基础知识掌握串口如何发送接收数据 。实验串口发送数据点亮 led。 一、串口的基础知识 如果想了解串口的基础知识可以参考我之前的文章 STM32Cube串口USART发送接收数据 STM32CubeMX串口USART中断发送接收数据 二、cubeMX 配置 选择芯片开始创建工程。 设置 仿真。 配置时钟选择 HSE 高速时钟。 设置时钟频率。 直接设置为 最大频率 72 然后双击 enter 即可。 设置工程的名字工具链选择 MDK。 点击自动生成 .c / .h 文件。 这里我使用串口2 USART2。然后选择异步模式。 对于 USART2 可以是 同步也可以是异步。而 UART 只可以是 同步。 点击 NVIC, 使能中断。设置 相关参数波特率数据长度校验位停止位 可以看到这里出现了两个 PA2, PA3 引脚分别是 发送引脚接收引脚。 点击生成即可。 这样就可以生成 keil 的工程文件。 三、自动生成代码解析 使用 cubeMX 生成的 串口代码都放在 usart.c 中。 首先还是 先定义一个 串口对象这是一个结构体。 初始化这个结构体中的相关参数。然后调用 HAL_UART_Init(huart2) 对其初始化。 之后自动调转到HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) 执行。 __HAL_RCC_USART2_CLK_ENABLE(); 开启串口 2 由于 PA2, PA3 引脚所以使用 __HAL_RCC_GPIOA_CLK_ENABLE();使能 gpio 端口。 配置引脚 这里 PA2 作为复用引脚除了作为串口发送端可能还具有其他的功能它的工作模式 是GPIO_MODE_AF_PP复用推挽输出。 HAL_NVIC_SetPriority(USART2_IRQn, 0, 0) 设置优先级 HAL_NVIC_EnableIRQ(USART2_IRQn); 使能中断 四、串口发送数据函数 发送数据。串口发送数据有 2 种写法。有无中断 这里我主要介绍最后一个参数 超时时间 Timeout 。 当使用这个函数 发送数据时如果超过该时间则直接返回错误不再执行该函数。 HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout)以中断的方式发送数据。这里就不需要超时时间了。 HAL_UART_Transmit_IT(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size)接收数据。 开启串口中断接收函数 每次接收到数据后都要再次开启中断接收函数。这样才可以多次接收数据。 HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)串口中断接收回调函数 当接收到数据时就会调用该函数。 HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)五、使用串口收发数据点亮 led 这里如果要点亮 led ,要在cubeMX 中配置 led 引脚。 uint8_t rx_buff 0; // 存放接收的数据/* 每次接收到数据后都会调用该串口回调函数 */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {if(huart huart2){if(rx_buff 0xa1) // 发送 a1 点亮 led{printf(LED ON\r\n); // 使用 printf 发送数据需重定向 fputc 函数HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET);}else if(rx_buff 0xa2) // 发送 a2 熄灭 led{printf(LED OFF\r\n);HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_SET);}}HAL_UART_Receive_IT(huart2,rx_buff,1); // 再次开启接收 }重定向函数 发送数据可使用 printf 。 由于 printf 依赖于 fputc 函数所以可以重定向 fputc 来实现 printf 串口发送数据。 int fputc(int ch, FILE* f) {while(HAL_UART_Transmit(huart2,(uint8_t*)ch,sizeof(ch)-1,300) ! HAL_OK);return 0; } 接收数据可以使用 scanf 。 int fgetc( FILE *f) /* scanf 输入 */ {char c 0;while(HAL_UART_Receive(huart1, (uint8_t *)c, 1, 300) ! HAL_OK);return c; } 总结 下一篇文章为大家介绍 STM32 超声波 模块的使用。
http://www.hkea.cn/news/14297456/

相关文章:

  • 青海网站维护东莞详情页设计
  • 自主网站建站桂林漓江官网
  • 如何找人做网站网站建设 大纲
  • 做淘宝网站需要什么ppt设计说明
  • 企业网站的设计怎么做网站开发服务费属于哪种进项
  • 网站数据分析建设做网站的公司需要什么资质
  • 网站内容填写360建筑网怎么获得人才信息
  • 网站阵地建设管理建设通网站不良信用信息撤销
  • 网站建设需要经过哪几个步骤西乡做网站价格
  • 设计师可以接单的网站最大源码网站
  • 架设网站多少钱wordpress 管理员插件
  • 网站建设学习学校大港油田建设网站
  • 网站一般用什么服务器怎么将自己做的网站上线
  • 青海企业网站制作360ssp网站代做
  • 柏乡县网站建设wordpress用户投稿
  • 平面设计做兼职网站哪些ppt网站是免费的
  • w网站建设需求说明齐鲁石化建设公司官网
  • 建设征信注册中心网站wordpress适应ie6
  • 网站开发众筹自媒体创业
  • 觉得自己做的网站土怎么办陕西建设厅八大员官方网站
  • 银川网站建设多少钱巴中网站建设公司
  • 太原网站建设招聘网站模板哪个网站全面
  • 福建省建设工程资格中心网站网站上传好了如何做定向
  • 做跨境电商网站wordpress自己添加menu
  • 安顺网站开发公司阿里做的网站后台怎么进
  • 是用cms还是直接用语言写网站阿里 建设网站
  • 网站建设项目申请ppt网站免费服务器
  • 中国空间站设计在轨飞行几年和17做网店类似的货源网站
  • 东莞网站设计电话开封公司做网站
  • 游戏平台网站制作礼品行业网站建设