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

[STM32U3] 【每周分享】【STM32U385RG 测评】+串口发送、接收数据

上篇串口通讯只是打印叔数据,这篇更进一步,将串口发送什么,就打印什么出来
一、查看原理图,确定自己需要的串口信息


还是一样的串口1
二、开始配置软件


上面基础配置结束之后,增加DMA以及NVIC配置


时钟可以根据自己情况,去调整,也可以默认。
到此配置结束,开始生成代码
三、代码调试
1、usart.c中增加如下代码
#include <stdio.h>
/* USER CODE BEGIN 1 */

#ifdef _GNUC_
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

#else
#definePUTCHAR_PROTOTYPEintfputc(intch, FILE *f)
#endif
PUTCHAR_PROTOTYPE

{

HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF);//阻塞方式打印

returnch;

}
/* USER CODE END 1 */




2、main.c中增加如下代码
#include <stdio.h>

#define RXBUFFERSIZE 256 //最大接收字节数
charRxBuffer[RXBUFFERSIZE];//接收数据
uint8_taRxBuffer;//接收中断缓冲
uint8_t Uart8_Rx_Cnt = 0; //接收缓冲计数
/* USER CODE END Includes */




HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1); //启动串口中断





/* USER CODE BEGIN 0 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{

/* 防止未使用的参数编译警告 */

UNUSED(huart);

/* 注意: 需要回调时,不应修改该函数、

可在用户文件中实现 HAL_UART_TxCpltCallback */
if(Uart8_Rx_Cnt >= 255) //溢出判断
{
Uart8_Rx_Cnt = 0;
memset(RxBuffer,0x00,sizeof(RxBuffer));
HAL_UART_Transmit(&huart1, (uint8_t *)"数据溢出", 10,0xFFFF);
}
else
{
RxBuffer[Uart8_Rx_Cnt++] = aRxBuffer; //接收数据转存
if((RxBuffer[Uart8_Rx_Cnt-1] == 0x0A)&&(RxBuffer[Uart8_Rx_Cnt-2] == 0x0D)) //判断结束位
{
printf("USART1收到的数据:\n\r");
HAL_UART_Transmit(&huart1, (uint8_t *)&RxBuffer, Uart8_Rx_Cnt,0xFFFF); //将收到的信息发送出去
while(HAL_UART_GetState(&huart1) == HAL_UART_STATE_BUSY_TX);//检测UART发送结束
Uart8_Rx_Cnt = 0;
memset(RxBuffer,0x00,sizeof(RxBuffer)); //清空数组
}
}
HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1); //再开启接收中断
}

/* USER CODE END 0 */


四、运行效果
将程序下载demo板后,打开串口软件,查看效果


后续继续努力,争取早日完成测评

代码:

代码Core.zip(22.88 KB, 下载次数: 0)



---------------------
作者:LiuDW091
链接:https://bbs.21ic.com/icview-3471474-1-1.html?_dsign=08d70edf
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

http://www.jsqmd.com/news/807124/

相关文章:

  • 哔哩下载姬DownKyi:你的B站视频素材管理专家
  • MCU集成可编程逻辑单元:硬件加速与系统优化实战解析
  • 2025-2026年北京家装公司推荐:五家排名评测新房装修控预算案例 - 品牌推荐
  • OpenClaw近一月版本更替讲解
  • OpenClaw:重新定义 AI 智能体,从对话到执行的全能 “龙虾
  • Chiplet架构如何重塑以太网交换芯片设计与数据中心网络
  • Notepad++写HTML全攻略
  • AI智能体交互体验优化:从对话管理到个性化记忆的工程实践
  • 2025-2026年晟鑫财税电话查询:选择财税服务前请核实资质与风险提示 - 品牌推荐
  • STM32F103 IAP实战:从Bootloader设计到远程固件更新
  • 焕新暴雨品牌领航开新局
  • 如何使用日志实现业务全链路追踪
  • FPGA浮点运算实现:从原理到自定义16位加法器实战
  • 线下展会价值与高效参会指南:从技术发现到工程实践
  • modbus 512 断线重连 db browser for sqlite
  • 强化学习中的 On-policy 与 Off-policy 全面解析
  • 半导体市场预测:拆解增长逻辑、驱动力与供应链博弈
  • Flink:Keyed State vs Operator State 原理与实践
  • API网关设计:统一管理前端API的最佳实践
  • 画电气原理图的软件哪个最好用?CAD与EPLAN对比!
  • OpenAI成立部署公司并收购Tomoro,AI竞争焦点转向企业落地
  • 告别单调!用LVGL Button控件打造3种高级交互动效(附完整C代码)
  • C#初步认识/入门基础
  • 3步搞定!Mac用户必备的微信聊天记录永久保存方案
  • 本地部署9B代码智能体:从vLLM部署到能力评估实战
  • GitHub每日一题项目:结构化面试训练与社区驱动学习指南
  • EDA/IP标准演进:从OSCI与Accellera合并看行业协同与统一
  • 实证论文不用愁!虎贲等考 AI 数据分析:零代码跑模型,图表 + 结论一键生成
  • 观察Taotoken用量看板如何帮助团队透明化管理API成本
  • LInux(gcc处理器,库文件,动静态库)