Proteus模拟STM32F103R6微控制器之串口通信USART的方法,实验环境如下:

模拟软件:Proteus 8.11 SP0

开发环境:Keil MDK 5.33

参考资料:ST公司官方参考手册

一、原理图

STM32F103微处理器的USART1发送:PA9,接收:PA10。

虚拟终端的发送接到STM32F103的接收,虚拟终端的接收接到STM32F103的发送。原理图如下:

二、源码

// NVIC配置
static void NVIC_Configuration(void)
{NVIC_InitTypeDef NVIC_InitStructure;// Configure the NVIC Preemption Priority BitsNVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);// Enable the USART1 InterruptNVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);
}// USART1配置
void USART1_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);// Configure USART1 Tx as alternate function push-pullGPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);// Configure USART1 Rx as input floatingGPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, &GPIO_InitStructure);// Configure USART1USART_InitStructure.USART_BaudRate = 9600;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure);// NVIC configurationNVIC_Configuration();// Enable USART1 Receive and Transmit interruptsUSART_ITConfig(USART1, USART_IT_RXNE, ENABLE);USART_ITConfig(USART1, USART_IT_TXE, ENABLE);// Enable the USART1USART_Cmd(USART1, ENABLE);
}// 中断处理函数
void USART1_IRQHandler(void)
{uint16_t temp;if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET){temp = USART_ReceiveData(USART1);USART_SendData(USART1, temp);}
}

三、实现效果

对应上面的原理图,接收是上面2个虚拟终端,发送是下面1个虚拟终端。效果图如下:

Proteus模拟STM32F103R6微控制器之串口通信USART的方法相关推荐

  1. Proteus仿真STM32F103R6微控制器的GPIO(按键控制LED开关)

    Proteus仿真STM32F103R6微控制器的GPIO,检查按键,控制LED灯的反转.. 输入:按键检测:输出:高低电平,控制LED. 一.原理图: 二.源码: #include "st ...

  2. C#编程简单模拟与下位机的串口通信

    在学校里的团队里,遇到需要与下位机实现串口通信的项目,假期里查了很多资料,在此发一篇加深一下印象 需要: 电脑,vs软件(visual studio 2010) Serial Port Tester( ...

  3. STM32最小核心板F103串口通信USART

    文章目录 一.串口协议和RS-232标准,RS232电平与TTL电平的区别,"USB/TTL转232"模块的工作原理 1.串口协议 2.RS-232标准 3.RS232电平与TTL ...

  4. STM32串口通信-USART全面讲解

    通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个全双工的串行通信设备:UART(Universal A ...

  5. 搭建机器人电控系统——通信协议——串口通信USART/UART、RS232、RS485及其实例

    通信协议 串口通信详解 IIC通信详解 SPI通信详解 CAN通信详解 文章目录 通信协议 什么是串口? 串口分类 USART/UART.RS232.RS485的区别 串口协议原理 传输协议 需要定义 ...

  6. 【MATLAB】使用matlab进行串口通信(详细方法+代码讲解)

    整理时间:2020-05-19 目录: 1.matlab可以 进行串口通信? 2.怎么搞 3.总结 正文: 1.matlab可以 进行串口通信 matlab的toolbox很强大.其中Instrume ...

  7. STM32串口通信USART练习

    文章目录 一.STM32的USART介绍 二.USART串口通信实践 1.任务要求 2.所用器材 3.主要代码 4.代码解析 三.效果展示 四.总结 五.参考资料 一.STM32的USART介绍 通用 ...

  8. 九、【中级篇】串口通信(USART、IIC)、读取EEPROM

    串行接口 1.串口简介 串口的工作模式 串口与并口的区别 不同电平标准的串口 开发板上的串口 2.USART/UART简介 USART/UART的配置 初始化USART1 发送与接收数据 3.串口解析 ...

  9. 基于proteus软件仿真AT89C52的双机串口通信 附工程包

    计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信. 51 单片机用 4 个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成 ...

最新文章

  1. 艾宾浩斯计划表自动生成网站_施工进度计划表横道图,自动出图超方便,建议收藏...
  2. [Nancy On .Net Core Docker] 轻量级的web框架
  3. grep的时候Binary file (standard input) matches 怎么解决?
  4. java如何保证类不被回收_垃圾回收机制保证了Java程序不会出现内存溢出。( )
  5. oracle数据库pfile文件,Oracle pfile/spfile参数文件详解
  6. oracle中decode方法使用
  7. mysql查看锁表锁进程
  8. PHP-Smarty
  9. aspectjweaver和aspectjrt的区别
  10. 异步处理Promise
  11. 计算机的应届毕业生简历上可以写什么,计算机应届生简历范文计算机专业应届毕业生简历写.doc...
  12. cf 1487C - Minimum Ties
  13. 《前端中文入门手册》.pdf
  14. 数字图像处理 拜耳过滤器简介
  15. VS中实时获取SVN的版本号并写入到AssemblyInfo.cs中(C#)
  16. Coursera | Introduction to Data Science in Python(University of Michigan)| Assignment2
  17. Java开发常用英语单词表
  18. dw网页设计期末设计一个网页_网页设计期末作业用DW
  19. 初看一脸懵逼,看懂直接跪下!
  20. 《全民攻城》开心周末,好礼相赠

热门文章

  1. github是什么?
  2. Apache+Openssl
  3. Delphi Form Designer (窗体设计器)之二
  4. 提高jQuery执行效率
  5. 程序员之路──如何学习C语言并精通C语言
  6. 关于博客园,编辑文章的小意见
  7. Windows Messenger 5.1 [Download from Microsoft]
  8. OkHttpClient源码分析(五)—— ConnectInterceptor和CallServerInterceptor
  9. c# load xml 中文报错
  10. 物理层与综合布线【笔记】