(五)Proteus仿真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

相关推荐
国科安芯21 小时前
高可靠性电源方案的高温降额设计与热管理策略——基于ASP3605的温域特性实证研究
单片机·嵌入式硬件·安全威胁分析·安全性测试
白太岁21 小时前
操作系统开发:(9) 从硬件复位到程序执行:如何编写符合硬件动作的启动文件与链接脚本
c语言·汇编·嵌入式硬件·系统架构
逻辑流21 小时前
《精准测量的起点:STM32中的电压电流有效值计算算法》
stm32·单片机·嵌入式硬件·算法
隔壁大炮1 天前
MPU6050
stm32·单片机·嵌入式硬件
麦德泽特1 天前
STM32与Linux的无缝协作:通过USB CDC/VCP实现高效数据交互
linux·stm32·单片机·嵌入式硬件·安全
良许Linux1 天前
FPGA原理和应用
stm32·单片机·fpga开发·程序员·嵌入式·编程
清风6666661 天前
基于单片机的夹具压力控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
点灯小铭1 天前
基于单片机的智能家居智能雨水自动关窗控制系统设计
单片机·嵌入式硬件·毕业设计·智能家居·课程设计·期末大作业
点灯小铭1 天前
基于单片机的电加热炉智能温度与液位PID控制系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
aHais_1 天前
REGMAP使用方法杂项
linux·单片机