使用CubMX和Proteus学习STM32单片机(三)------虚拟串口

本文介绍了如何使用CubMX生成基于STM32F103R4的HAL库工程,并在Proteus上进行串口通信的仿真验证。通过虚拟串口软件VirtualSerialPortDriver创建串口连接,然后在KEIL中编写并编译程序,最终在Proteus中实现串口通信的仿真,展示了串口通信的工作流程和中断配置。提供的代码示例展示了printf和scanf重定向到串口的功能。
摘要由CSDN通过智能技术生成

目录

项目简介

硬件模块

软件工具

电路连接图

工作流程

程序代码

结语


项目简介

        利用CubMX生成基于32单片机的HAl库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门STM32单片机。这是第三部分针对串口通信的一个实例,虚拟串口其实只是计算机以软件的方式模拟串口通信的功能,可以基本等同于实际的串口。本文主要用于对STM32串口通信的理解。

硬件模块

        STM32F103R4

        串口模块

软件工具

        CubMX

        Proteus

        KEIL

电路连接图

        STM32F103R4

        

        串口模块

        

工作流程

        首先是下载相应的虚拟串口,这里下载的是Virtual Serial Port Driver软件。

        

        安装好后,其使用期限是14天,后续超过这个期限重新安装即可。其使用方法也很简单,使用的时候点击“Add pair”即可,这里是已经Add了COM1和COM2之后的情况,需要注意的是用完这个虚拟串口之后记得点击“Delate All”否则会一直占用。  

        然后创建CubMX工程,首先设置好串口      

        在CubMX中配置好串口中断。

        然后就是在生成的KEIL工程里面编写相应的程序啦。这部分在“程序代码”标题中有。

        最后就是在Proteus和串口调试助手上验证啦,验证结果如下图所示。

        

程序代码

        


//重定向printf()到串口发送和接收,方便应用
int fputc(int ch, FILE *f){
 uint8_t temp[1] = {ch};
 HAL_UART_Transmit(&huart1, temp, 1, 0xffff);
return ch;
}
//重定向scanf()函数和getchar()函数,方便应用
int fgetc(FILE * f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1,&ch, 1, 0xffff);
  return ch;
}

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
	MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
	printf("Hello World\n");
  while(1)
  {
	
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

结语

本文大部分内容都属于原创,如需转载,请附上本文网站,
如果需要相关的仿真图、程序代码等资料可以直接私信我,我会及时回复。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Runner.DUT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值