基于Proteus无实物零基础STM32入门自学教程(六)--串口打印

简介:本项目为基于STM32F103R6为核心 的串口打印工程。为新手刚入门串口最基本的串口打印任务。主程序非常简单,主要关注串口的初始化程序,学会配置并应用。工程保留了上一个任务的按键和LED模块,没有做调用。为了简化程序让大家看的只有串口的程序。大家可以藉由按键和LED模块子程序完成更复杂的任务。

目的:学会串口的底层驱动,学会应用proteus的串口显示工具调试程序。

硬件:PA9和PA10直接连接proteus的virtual terminal工具

软件:串口打印delay+延时时间,并经过对应的延时打印该信息。目前调试工具显示的时间准确性与程序不符,没找到具体原因。但是可以验证基本的串口程序是否穿输出数据,这个是可以验证的。

在计算机网络与分布式工业控制系统中,设备之间经常通过各自配备的标准串行通信接口,加上合适的通信电缆实现数据与信息的交换。

  所谓“串行通信”是指外设和计算机之间,通过数据信号线、地线与控制线等,按位进行传输数据的一种通信方式。

  目前常见串行通信接口标准有RS-232RS-422RS-485等,它们由美国电子工业协会(Electronic Industries AssociationEIA)发布。本节主要学习RS-232标准相关的内容。

RS-232标准最早是为远程通信而设计的,用于连接数据终端设备(Data Teminal Equipment,DTE)与数据通信设备(Data Communication Equipment,DCE),现普遍用于计算机之间或计算机与外设之间的近端连接。

在异步串行通信中,数据是以数据帧(Data Frame)为单位进行传输的。每个数据帧承载一个字符数据,异步串行通信的数据帧结构如图所示: 

一、Proteus仿真图

电路讲串口直接连接到virtual terminal调试工具监视串口发送的数据,验证程序是否有问题。

二、MED代码

在上一节使用了正点原子的模块化设计思维后,本节依旧使用正点原子的模板程序。重点是怎么使用,大家可以看一下mani.c代码非常简单,在调用了usart.c之后我们的代码仅仅需要一句话就可以实现发送数据:

int main(void)
 {	
	  uart_init(9600);	                             //串口初始化比特率为9600
	 
	   while(1)                                      //进入循环
	{ 
	
		 printf("delay 1000ms\r\n");                     //打印
     delay_ms(1000);
		 printf("delay 2000ms\r\n");                     //打印
	   delay_ms(2000);

  }
 
 }

 大家可以看到程序和仿真结果,仅仅需要一行语句就可以直接实现串口输出内容。而printf函数是实现此功能的核心。

实际调用的发送函数是fputc函数

//重定义fputc函数 
int fputc(int ch, FILE *f)
{      
    while((USART1->SR&0X40)==0);//循环发送,直到发送完毕   
    USART1->DR = (u8) ch;      
    return ch;
}

串口通过fputc函数将数据发送出去。

三、仿真效果和源代码资源

基于Proteus无实物零基础STM32入门自学教程(六)--串口打印-单片机文档类资源-CSDN下载

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

永远都是新手

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

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

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

打赏作者

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

抵扣说明:

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

余额充值