当前位置: 首页> 房产> 建筑 > 网络管理系统页面_wap是什么意思_全球搜钻是什么公司_企业培训师

网络管理系统页面_wap是什么意思_全球搜钻是什么公司_企业培训师

时间:2025/7/13 12:56:04来源:https://blog.csdn.net/weixin_54210362/article/details/142490296 浏览次数:0次
网络管理系统页面_wap是什么意思_全球搜钻是什么公司_企业培训师

一、stmCubeMX串口通信的步骤

1、新建一个文件,选择自己的芯片

2、配置时钟

3、配置串口

串口的模式解析可以跳转到以下文章查看

stmCubemx——配置串口时的几种模式-CSDN博客在STM32CubeMX中配置串口(USART或UART)时,可以设置多种模式来满足不同的通信需求。https://blog.csdn.net/weixin_54210362/article/details/142490631?spm=1001.2014.3001.5502

示例配置

假设你需要配置一个异步模式的USART1,波特率为115200,8个数据位,1个停止位,无奇偶校验,并启用中断:

  1. 选择USART1
  2. 设置模式为异步模式
  3. 设置波特率为115200
  4. 设置数据位为8
  5. 设置停止位为1
  6. 设置奇偶校验为无
  7. 启用中断:在“NVIC Settings”中勾选相应的中断。

4、配置时钟树

5、命名,保存项目

6、选择生成文件配置

二、生成的keil文件处理过程

1、usart.c

#include "stdio.h"
extern UART_HandleTypeDef huart1;   //声明串口

/*** 函数功能: 重定向c库函数printf到DEBUG_USARTx* 输入参数: 无* 返 回 值: 无* 说    明:无*/
int fputc(int ch, FILE *f)
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);return ch;
}/*** 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx* 输入参数: 无* 返 回 值: 无* 说    明:无*/
int fgetc(FILE *f)
{uint8_t ch = 0;HAL_UART_Receive(&huart1, &ch, 1, 0xffff);return ch;}

2、main.c文件

命名一个数组,用来接收存储数据

#include "string.h"//需要额外包含的头文件/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#define RXBUFFERSIZE  256
char RxBuffer[RXBUFFERSIZE];
uint8_t aRxBuffer;				//接收中断缓冲
uint8_t Uart1_Rx_Cnt = 0;		//接收缓冲计数

想要验证输出,直接main函数中的循环里面,用printf串口打印自己想要输出的内容就可以

下面的代码是用来实现串口收发功能的,直接定义在main.c文件中就可以

在main函数的循环以外线调用一次接收中断函数

 HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);//接收中断

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{/* Prevent unused argument(s) compilation warning */UNUSED(huart);/* NOTE: This function Should not be modified, when the callback is needed,the HAL_UART_TxCpltCallback could be implemented in the user file*/if(Uart1_Rx_Cnt >= 255)  //溢出判断{Uart1_Rx_Cnt = 0;memset(RxBuffer,0x00,sizeof(RxBuffer));HAL_UART_Transmit(&huart1, (uint8_t *)"数据溢出", 10,0xFFFF); 	}else{RxBuffer[Uart1_Rx_Cnt++] = aRxBuffer;   //接收数据转存if(HAL_UART_GetState(&huart1) != HAL_UART_STATE_BUSY_RX)  // 检查UART状态,判断是否接收完成{HAL_UART_Transmit(&huart1, (uint8_t *)&RxBuffer, Uart1_Rx_Cnt,0xFFFF); //将收到的信息发送出去while(HAL_UART_GetState(&huart1) == HAL_UART_STATE_BUSY_TX);//检测UART发送结束Uart1_Rx_Cnt = 0;memset(RxBuffer,0x00,sizeof(RxBuffer)); //清空数组}}HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);   //再开启接收中断
}

3、演示结果

三、keil软件配置 

关键字:网络管理系统页面_wap是什么意思_全球搜钻是什么公司_企业培训师

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: