STM32F103_study35( USART--Echo experiment)

在这里插入图片描述

一、实验目的:
通过野火多功能调试助手,向STM32开发板发字符。S TM32开发板原封不动的将发送过去的字符再发送回来。
二、软件+硬件
硬件:
1.STM32F103VET6芯片开发板(野火STM32F103指南者开发板)
2.STM32仿真器
3.仿真器连接开板的线
4.两根Mini B型USB线
软件:
1.keil
2.野火多功能调试助手
三、实验所涉及的原理图:
需要用到串口的原理图
在这里插入图片描述
四、实验整体逻辑构架
在这里插入图片描述

在这里插入图片描述

五、实验步骤:

1.先将硬件连接好线
正常情况会是下图这种:
在这里插入图片描述
当电脑缺少驱动是会有感叹号:
在这里插入图片描述
这时我们需要安装这个驱动(直接打开安装就行):
在这里插入图片描述
此时打开野火多功能调试助手:
在这里插入图片描述
下面的串口号要和开发板连接到电脑的串口号一样
在这里插入图片描述
在这里插入图片描述
这两个串口号要一样(这儿我还没改呢)
注意:如果在安装完驱动后,还有感叹号,重启一下电脑就行了。

此时我们需要来新建这个回显实验的工程了:
首先我们需要弄清楚,我们需要设置哪些东西:
1.为什么要连接在开发板的串口上?
我们所做的是回显实验,选择的的是用串口实现,回显就是说,需要开发板向我们PC机发送数据,而我们现在开发板和PC之间传输数据必须用到串口(这个是储备知识),所以我们连接的硬件线时,连接到的是串口线。
2.为什么选择外部表时钟源?

在这里插入图片描述
3.为什么选择串行线
在这里插入图片描述
4.为什么选择UASRT1?
分析下图可知我手里这款开发板的所有USART的个数,在查看了原理图得知开发板上面的串口连接在USART1上面,而我们要实现的是回显,可供使用的串口只有一个,所以我们不得不使用USART1
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
5.
为啥选择了异步收发呢?
因为异步不需要配置时钟,这让程序代码更加简单,难度也降低了。

在这里插入图片描述
6.
这个你自己调就行了,但要保证这两个配置的参数必须一样,这样这两个东西才能通信。

在这里插入图片描述
在这里插入图片描述
7.
这儿的引脚是默认的,你也可以改,但是呢,你的查看你该的引脚的复用功能是否能够作为USART1的收或者发。
在这里插入图片描述8.
这是在设置该串口的中断使能。
在这里插入图片描述
9.该实验涉及的外设全部挂载APB总线上,所以外设的时钟直接从总线上面获取就行。
时钟设置:
在这里插入图片描述

新建串口初始化代码过程:
在这里插入图片描述

芯片要根据自己的开发板芯片类型去选,不知道自己芯片类型的去开自己开发板原理图,原理图会有
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这两边的参数设置要一样
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码分析:

int main(void)
{
  HAL_Init();        
  /* 配置系统时钟为72 MHz */ 
  SystemClock_Config();
	   
  /*初始化USART 配置模式为 115200 8-N-1,中断接收*/
  DEBUG_USART_Config();
  
	/*调用printf函数,因为重定向了fputc,printf的内容会输出到串口*/
	printf("欢迎使用野火开发板\n");	

	/*自定义函数方式*/
	Usart_SendString( (uint8_t *)"自定义函数输出:这是一个串口中断接收回显实验\n" );
	
  while(1)
	{		
	}
}

HAL_Init(); 

为什么它要初始化?
它初始化了那些东西?
它初始化的那些东西对这个实验有影响?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值