stm32f103核心板串口通信入门
一、 基于寄存器与基于固件库编程方式的差异
使用固件库,目前比较多的例程是使用固件库编写的。固件库编写方式,特点是简单易于理解,资料多。新手适合用这种方式入门。
使用寄存器,想要深入理解CortexM3内核或是需要为了获得更好的可移植性,学习寄存器编程会比较有帮助。但是从专业的角度上看,寄存器更贴近底层,对外设的工作原理和运行机理会有更深的理解。优点:①具体参数更直观 ②程序运行占用资源少。 缺点:①开发速度慢 ②程序可读性差 ③维护复杂。开库开发方式则正好弥补了寄存器开发的缺点。
二、stm32串口通信
1. 前期准备
硬件
stm32f103c8t6核心板
推荐使用stm32f103ve开发板,核心板操作较为困难,容易出现线路连接不良、连接失误等各种意外。同时,开发板可以从网上找到直接可用的资料代码,大大节省时间,提高效率。
ST-link接口
USB-TLL转换线
以及数量足够的杜邦线
软件
STlink驱动
可自行百度下载
USB转串口驱动、野火多功能调试助手
USB转串口驱动在这里 提取码:l5fi
野火多功能调试助手在这里 提取码:rysf
MDK Keil5
连接
- ST-Link 与核心板:选择st-link选择3.3v口,与核心板相对应连接
- USB-TTL与核心板:TXD接A10,RXD接A9
(注意!这里一定是反着接,容易犯错!) - ST-Link与USB-TTL分别接到电脑上
连接成功后如下图、
2.编写程序并烧录
设计程序
要求STM32系统给上位机(win10)连续发送“hello windows!”,当上位机给stm32发送“Stop,stm32”后,stm32停止发送。
代码如下:
stm32f10x_it.c
#include "stm32f10x_it.h"
#include "bsp_usart.h"
void NMI_Handler(void){
}
void