本项目使用主流单片机STM32F103搭建最小系统板,该电路板实用性极强,是单片机入门的好帮手。同时由于电路简单,对于学习PCB Layout来说也是入门学习画板的好途径。
我们的视频课程包括三部分内容,一个是电路原理图设计的讲解,一个是PCB Layout的讲解,另一个是单片机示例代码的讲解。通过原理图的讲解,大家可以知晓单片机最小系统电路的工作原理。PCB Layout视频,则教会大家手把手把我们的原理图用印刷电路板的形式呈现出来,从原理图库文件、画原理图、PCB库到PCB画板,每一步都很细致。
知识点
1. 视频概括及学习方法介绍
2. 新建原理图及原理图封装库
3. 原理图封装库制作
4. 原理图详细讲解
5. 原理图编译
6. 新建PCB以及PCB封装库
7. PCB封装库制作
8. PCB板外框制作
9. 原理图导入PCB
10. 导入PCB报错的解决办法
11. PCB布局宏观把控
12. 布局前规则设置
13. 元器件分功能模块布局摆放
14. PCB走线以及线宽线距讲解
15. 元器件丝印调整
16. PCB敷铜
17. PCB检查
18. DRC检测
19. 输出生产Gerber图
20. 输出坐标文件
21. PCB制作工艺讲解
22. KEIL软件的下载和安装
23. 新建代码工程文件
24. 单片机驱动硬件原理讲解
25. 单片机外设结构以及相关寄存器讲解
26. 代码编写示例讲解
27. 烧录器及工程配置
28. 仿真调试讲解
29. 程序下载讲解
30. 代码结果演示
串口时钟使能,GPIO 时钟使能
2) 串口复位
3) GPIO 端口模式设置
4) 串口参数初始化
5) 开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤)
6) 使能串口
7) 编写中断处理函数
.串口时钟使能。串口是挂载在 APB2 下面的外设,所以使能函数为:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1);
2.串口复位。当外设出现异常的时候可以通过复位设置,实现该外设的复位,然后重新配置
这个外设达到让其重新工作的目的。一般在系统刚开始配置外设的时候,都会先执行复位该外
设的操作。复位的是在函数 USART_DeInit()中完成:
void USART_DeInit(USART_TypeDef* USARTx);//串口复位
比如我们要复位串口 1,方法为:
USART_DeInit(USART1); //复位串口 1
3.串口参数初始化。串口初始化是通过 USART_Init()函数实现的,
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);
这个函数的第一个入口参数是指定初始化的串口标号,这里选择 USART1。
第二个入口参数是一个 USART_InitTypeDef 类型的结构体指针,这个结构体指针的成员变量用
来设置串口的一些参数。一般的实现格式为:
USART_InitStructure.USART_BaudRate = bound; //一般设置为 9600;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长为 8 位数据格式
USART_InitStructure.USART_StopBits = USART_StopBits_1; //一个停止位
USART_InitStructure.USART_Parity = USART_Parity_No; //无奇偶校验位
USART_InitStructure.USART_HardwareFlowControl
= USART_HardwareFlowControl_None; //无硬件数据流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
//收发模式
USART_Init(USART1, USART_InitStructure); //初始化串口
从上面的初始化格式可以看出初始化需要设置的参数为:波特率,字长,停止位,奇偶校验位,
硬件数据流控制,模式(收,发)。我们可以根据需要设置这些参数。
4.数据发送与接收。STM32 的发送与接收是通过数据寄存器 USART_DR 来实现的,这是
一个双寄存器,包含了 TDR 和 RDR。当向该寄存器写数据的时候,串口就会自动发送,当收
到数据的时候,也是存在该寄存器内。
STM32 库函数操作 USART_DR 寄存器发送数据的函数是:
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
通过该函数向串口寄存器 USART_DR 写入一个数据。
STM32 库函数操作 USART_DR 寄存器读取串口接收到的数据的函数是:
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
通过该函数可以读取串口接受到的数据。
5.串口状态。串口的状态可以通过状态寄存器 USART_SR 读取。USART_SR 的各位描述如
这里我们关注一下两个位,第 5、6 位 RXNE 和 TC。
RXNE(读数据寄存器非空),当该位被置 1 的时候,就是提示已经有数据被接收到了,并
且可以读出来了。这时候我们要做的就是尽快去读取 USART_DR,通过读 USART_DR 可以将
该位清零,也可以向该位写 0,直接清除。
TC(发送完成),当该位被置位的时候,表示 USART_DR 内的数据已经被发送完成了。如
果设置了这个位的中断,则会产生中断。该位也有两种清零方式:1)读 USART_SR,写
USART_DR。2)直接向该位写 0。
状态寄存器的其他位我们这里就不做过多讲解,大家需要可以查看中文参考手册。
在我们固件库函数里面,读取串口状态的函数是:
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
这个函数的第二个入口参数非常关键,它是标示我们要查看串口的哪种状态,比如上面讲解的
RXNE(读数据寄存器非空)以及 TC(发送完成)。例如我们要判断读寄存器是否非空(RXNE),操
作库函数的方法是:
USART_GetFlagStatus(USART1, USART_FLAG_RXNE);
我们要判断发送是否完成(TC),操作库函数的方法是:
USART_GetFlagStatus(USART1, USART_FLAG_TC);
这些标识号在 MDK 里面是通过宏定义定义的:
1、 首先安装ST官方串口下载软件,
Flash_Loader_Demonstrator_v2.2.0_Setup.exe
2、 用交叉串口线连接开发板和电脑,
BOOT0选择为1,BOOT1选择为0,
接上开发板电源,SW1切换到ON打开电源开关。
3、 从开始程序菜单打开Flash Loader Demo程序,所有程序-STMicroelectronics-Flash
Loader Demonstrator-Flash Loader Demo
用USB转TTL线把程序烧写到stm32f103C8T6中:
1、TXD-接 PA10/USART1_RX
2、RXD-接 PA9/USART1_TX
3、3V3 GND 接供电,将BOOT0接3V3后再供电,即可进入下载模式。
写入程序成功后,将BOO0与BOOT1均置为0。
扩展资料:
程序烧写的分类以及注意事项:
MCU类可烧录IC
MCU类可烧录IC,目前市场上有很多单芯片控制器(SINGLE MCU)可以通过配套的烧录器进行一次或多次资料烧写。通常仅能烧录一次的MCU被叫做OTPMCU(英文即:ONE TIME PROGRAMBLE MCU),与之相对的是MTP MCU(英文是MULTI TIME PROGRAMBLE MCU)就是可多次烧录的MCU。
OTP MCU通常由生产者在产品装配前通过配套的烧录器一次性把资料烧入,该类IC一经烧录,烧入的资料将无法再次改变
MTP MCU,有别于OTP MCU,本类IC 通过配套的烧录器可以多次烧录,擦写,有的内建FLASHMCU甚至可以烧录不小于10万次。
存储类可烧录IC
存储类可烧录IC:门类众多,如EPROM、EEPROM、NOR FLASH、SPROM、NAND FLASH等等。
EPROM、NOR FLASH、EEPROM、SPROM主要用于存放我们的数据资料或程式,我们已经司空见惯了,跟生产NAND FLASH的厂家比起来可以说生产厂家几乎遍地都是,市面上有相当多的万用烧写器可以把资料烧写进这些IC。
NAND FLASH只有三星等几个生产厂家生产,目前广泛用于U盘、MP3、MP4、ELA和电子词典上。
参考资料来源:百度百科-IC烧录
参考资料来源:百度百科-STM32F103C8T6
硬件设备:WT901C485模块、六合一、USB-TTL、杜邦线、STM32F103C8T6单片机。给大家看下图片。(解释下为什么要用六合一模块。由于我们这个STM32F103C8T6这个模块没有485的引角,而六合一有TTL-485的功能。因此就可以把STM32F103C8T6的串口转换成485的电平和我们的WT901C485去连接使用)
在这里插入图片描述
WT901C485
1
1
在这里插入图片描述
STM32F103C8T6
1
1
2)软件准备 : KEIL 5 (5.17版本的) 链接: 提取码:eq50.
2 接线方式
1、使用数据线将STM32F103C8T6与电脑连接通信
2、WT901C485与六合一连接,然后再与STM32F103C8T6使用杜邦线连接。具体接线如下图所示:
WT901C485 六合一 STM32F103C8T6
VCC————— VCC VCC ————— VCC
A —— —— A TX ————— PA2
B —— —— B RX ————— PA3
GND —— —— GND GND ————— GND
在这里插入图片描述
3 生成下载文件
1、在OUTUT勾选Creat HEX File
在这里插入图片描述
2、找到生成的HEX文件
在这里插入图片描述
4 下载程序
1、用数据线连接好STM32F103C8T6单片机和PC端。
2、按照“软件配置.png”图示设置好软件。
3、找到所需的hex文件。
4、按STM32F103C8T6单片机的红色的Bootloader 键
5、点击开始编程按钮,下载程序
在这里插入图片描述
可以用多路输出的D/A,也可以在完成D/A转换后用同一路信号驱动三路放大器(或跟随器)。多通道输出的D/A很多,如TLC5620、TLC7225、DAC7614、DAC7615、DAC6573是四通道的,TLC5628、TLV5630是八通道的。
本文标签:stm32f103c8t6如何与串口连接