STM32串口通讯

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

1.基于寄存器编程
特点:
(1)寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。
(2)可以深入理解CortexM3内核以及有更好的可移植性。
2.基于固件库编程
特点:
(1)简单,易于理解,适合新手直接上手
(2)外设简单

二、STM32的USART窗口通讯程序

具体要求:

1)设置波特率为115200,1位停止位,无校验位。
2)STM32系统给上位机(win10)连续发送“hello windows!”,上位机接收程序可以使用“串口调试助手“,也可自己编程。
3)当上位机给stm32发送“Stop,stm32”后,stm32停止发送

参考地址:

https://www.pianshen.com/article/8285571527/

准备工作:
1.安装keil(要求版本在5以上)
2.安装USB转串口驱动
3.安装野火提供的多功能助手

1安装USB转串口驱动

安装USB驱动时,需要保持开发板与电脑通过USB线的连接。

在这里插入图片描述

2安装野火提供的多功能助手

在野火提供的资料包里找到“多功能调试助手”
在这里插入图片描述
双击运行即可,此时显示设置串行口调试设置波特率为115200,1位停止位,无校验位如下:
在这里插入图片描述

3验证串口通信

在野火提供的例程中找到测试程序“串口接发”。
在这里插入图片描述

1)修改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-3] == 'm'&&ucTemp[i-4] == 't'&&ucTemp[i-5] == 's'&&ucTemp[i-6] == ' ')
			if(ucTemp[i-7] == 'p'&&ucTemp[i-8] == 'o'&&ucTemp[i-
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值