嵌入式作业(六):STM32串口通讯

一、基于寄存器与基于固件库的stm32 LED流水灯例子的编程方式有什么差异。使用固件库,目前比较多的例程是使用固件库编写的。固件库编写方式,特点是简单易于理解,资料多。新手适合用这种方式入门。使用寄存器,想要深入理解CortexM3内核或是需要为了获得更好的可移植性,学习寄存器编程会比较有帮助。但是从专业的角度上看,寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。STM32的USART窗口通讯程序1.烧录代码的方式使用stm32f103指南者,从电脑中下载程序到stm32有两种方式:
摘要由CSDN通过智能技术生成

一、基于寄存器与基于固件库的编程方式有什么差异。

使用固件库,目前比较多的例程是使用固件库编写的。固件库编写方式,特点是简单易于理解,资料多。新手适合用这种方式入门。

使用寄存器,想要深入理解CortexM3内核或是需要为了获得更好的可移植性,学习寄存器编程会比较有帮助。但是从专业的角度上看,寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。

二、STM32的USART窗口通讯程序

1.烧录代码的方式

使用stm32f103指南者,从电脑中下载程序到stm32有两种方式:
1.使用仿真线下载程序;(需要仿真线)
2.使用串口下载程序;(已经快被淘汰了,由于只需要一根USB线,所以在没有仿真线的情况下,还是比较实用)
这里我们使用第二种方法。
1)首先打开链接: 资源链接.
提取码:pmf1
下载图中标记的三个压缩包文件。
在这里插入图片描述
2)然后用usb线把stm32开发板和电脑相连接,stm32端连接的 ‘usb转串口’这个接口,再打开stm32开关,可以看到红色的小灯亮起。
在这里插入图片描述
3)开发板上有黄色的跳帽,是相当于导线的作用,此处要求BOOT0和BOOT1接地,RXD接A9,TXD接A10,开发板买来默认就是这样接的,所以不需要改动。
在这里插入图片描述
4)连接完成之后打开刚才下载的CH341SER.EXE,点击安装,显示安装成功即可。
在这里插入图片描述
5)然后打开串口下载助手mcuisp,按如下方式进行配置:①搜索串口,设置波特率 115200(尽量不要设置的太高) ,②选择要下载的 HEX 文件、③校验、编程后执行、④DTR 低电平复位,RTS 高电平进入 bootloader、⑤开始编程。(前4步一定要调试正确,否则可能连接失败)在这里插入图片描述

2.代码及效果图

该处串口通信实现以下功能:
1)设置波特率为115200,1位停止位,无校验位。
2)STM32系统给上位机(win10)连续发送“hello windows!”,
3)当上位机给stm32发送“Stop stm32!”后,stm32停止发送。

2.1、首先在刚刚的百度网盘链接中下载模板,打开1.程序源码_教程文档—>再打开1-[野火]《STM32库开发实战指南》(标准库源码)【优先学习】—>接下来点开1-书籍配套例程-F103VE指南者.rar下载解压后打开第21个串口通信文件中的USART1接发文件夹,选择project,打开后选择下图工程文件打开。
在这里插入图片描述
2.2、然后把其中stm32f10x_it.c文件的串口中断服务函数部分改为如下代码:

int i=0;
uint8_t ucTemp[50];
void DEBUG_USART_IRQHandler(void)
{
   
	if(USART_GetITStatus(DEBUG_USARTx,USART_IT_RXNE)!=RESET)
	{
   
		ucTemp[i] = USART_ReceiveData(USART1);	
	}
  if(ucTemp[i] == '!')
	{
   
		if(ucTemp[i-1] == '2'&&ucTemp[i-2] == '3'&&ucTemp[i-
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值