STM32 串口通讯(入门练习)
程序员文章站
2022-03-05 10:33:56
...
STM32 串口通讯(入门练习)
一、基于寄存器与基于固件库的 STM32 LED 流水灯例子的编程方式的差异
二、STM32 的 USART 窗口通讯程序
1. 实验内容
- 设置波特率为115200,1位停止位,无校验位。
- STM32 系统给上位机(win10)连续发送“hello windows!”,上位机接收程序可以使用“串口调试助手”,也可自己编程。
- 当上位机给 STM32 发送
Stop,stm32
后,STM32 停止发送。
2. 实验步骤
2.1 安装软件驱动
- 下载资料中的 串口_网络_电机多功能调试助手.rar
野火 STM32F103_MINI 开发板资料链接:
链接:https://pan.baidu.com/s/1ci3HmDMNdzSOAneJWHPo5g
提取码:1r2z
3. 下载好后解压并点击进入解压后的文件夹
再解压里面的 .rar 压缩包
解压后获得这个文件
4. 运行 CH341SER.EXE 文件安装驱动
2.2 安装串口调试助手
在刚刚网盘中下载的 串口_网络_电机多功能调试助手.rar 中下载 FireTools
解压后进入解压文件夹,即可使用 FireTools
2.3 调试代码
该部分工程文件采用野火提供的工程文件
-
修改串口终端服务函数
修改后代码如下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] == '2') { if(ucTemp[i-1] == '3'&&ucTemp[i-2] == 'm'&&ucTemp[i-3] == 't'&&ucTemp[i-4] == 's'&&ucTemp[i-5] == ' ') if(ucTemp[i-6] == 'p'&&ucTemp[i-7] == 'o'&&ucTemp[i-8] == 't'&&ucTemp[i-9] == 'S') { printf("停止发送"); while(1); } } i++; }
- 修改 main.c 函数,代码如下
#include "stm32f10x.h" #include "bsp_usart.h" void delay(uint32_t count) { while(count--); } int main(void) { USART_Config(); while(1) { printf("hello windows\n"); delay(5000000); } }
2.4 编译并烧入
keil烧入前的配置省略
烧入后打开 FireTools 效果如下
输入 Stop stm32
中断运行
上一篇: 微信好友设置隐私无法添加怎么办 微信隐私设置添加好友方法
下一篇: 导入阿里源maven库证书