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

(五)Protues仿真STM32单片机串口数据流收发

(五)Protues仿真STM32单片机串口数据流收发 – ARMFUN

1,打开STM32CubeMX,找到USART1,配置模式Asynchronous,此时PA9、PA10自动变成串口模式

串口默认参数:115200bps 8bit None 1stop

2,NVIC Settings使能收发中断

3,发送数据流

HAL_UART_Transmit_IT(&huart1, "hello word", 10);

4,接收固定长度数据

//定义一个接收10byte的数组
uint8_t revbuff[10];
//定义一个接收完成中断通知函数,数据接收完成时会被HAL库自动调用
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
//处理10byte数据
}
//初始化启动接收函数
HAL_UART_Receive_IT(&huart1,revbuff,10);

5,接收可变长度数据

//接收固定长度数据是启动接收后必须收到10byte数据才能收到中断完成通知,并且需要再次调用HAL_UART_Receive_IT重新启动后续数据接收,因此很不常用。为了接收可变的数据长度,需要每收到一个byte都产生中断通知,并且不停止接收状态
//定义一个接收1byte的数组
uint8_t revbuff[1];
//定义一个接收完成中断通知函数,数据接收完成时被调用
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
  //处理revbuff[0]1byte数据
}
//初始化启动接收1byte函数
HAL_UART_Receive_IT(&huart1,revbuff,1);
//修改库函数UART_Receive_IT,找到huart->pRxBuffPtr += 1U;删除此行,并替换为这两行HAL_UART_RxCpltCallback(huart);
return HAL_OK;
//这样每次收到新数据都会写到revbuff[0]并通知中断函数,且不会关闭接收状态。

6、Protues仿真使用电脑物理串口,搜索添加器件”COMPIM“,并如图连接

7、配置”COMPIM“选择物理串口,并配置物理串口和单片机端虚拟串口的波特率等参数

git源码:stm32_proutes: Protues仿真STM32单片机教程源码-WWW.ARMFUN.CN


http://www.kler.cn/news/336561.html

相关文章:

  • 萤火php端: 查询数据的时候报错: “message“: “Undefined index: pay_status“,
  • 【408计算机考研课程】数据结构-数据结构在学什么?
  • 使用html写一个能发起请求的登录界面
  • 智能平衡移动机器人-平台硬件电路
  • 旅游平台|智慧旅游平台|基于java的智慧旅游平台设计与实现(源码+数据库+文档)
  • 自动驾驶系列—智能驾驶中的“换挡革命”:线控换挡技术详解
  • 毕业设计——医院信息化系统原型设计
  • Thinkphp/Laravel基于vue.js的社区健康服务管理系统Vscode毕业设计成品源码_0i0k4
  • ubuntu添加 SSH 密钥到 GitHub
  • 基于ssm vue uniapp实现的爱心小屋公益机构智慧管理系统
  • 解决IDEA中@Autowired红色报错的实用指南:原因与解决方案
  • Linux更改固定IP地址
  • OJ在线评测系统 思考如何进行微服务的划分 业务功能 占用端口 公共服务 依赖服务 路由
  • python的extend和append
  • java高并发场景RabbitMQ的使用
  • 第25天:web攻防-通用漏洞sql读写注入MYSQLMSSQL
  • rpm安装RabbitMQ3.13.7
  • SparkSubmit进程无法强制kill掉以及Flink相关error
  • 【教学类-77-02】20241006青花瓷纹理纸(手工)
  • 十万人正在看的国庆假期