使用CubMX和Proteus学习STM32单片机(三)------虚拟串口
目录
项目简介
硬件模块
软件工具
电路连接图
工作流程
结语
项目简介
利用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 */}
结语
本文大部分内容都属于原创,如需转载,请附上本文网站,
如果需要相关的仿真图、程序代码等资料可以直接私信我,我会及时回复。