特点
接口丰富
设计灵活
资源充足
人性化设计
国产化程度高
基本参数
产品型号
ATK- DNF407 V3.2
CPU
STM32F407ZGT6,LQFP144
引出 IO
112 个
外形尺寸
121mm*160mm
工作电压
5V(USB)、DC6V~15V(DC005)
工作电流
75mA~120mA1(@5V)
工作温度
-40℃~+85℃
V3硬件资源
CPU
SRAM
SPI FLASH
EEPROM
电源指示灯
状态指示灯
复位按键
功能按键
电容触摸按键
电源开关
可调电位器
蜂鸣器
板载扬声器
红外接收头
光敏传感器
三轴磁力计芯片
音频编解码芯片
无线模块接口
CAN 接口
RS485 接口
RS232 接口
数字温湿度传感器接口
ATK 模块接口
LCD 接口
摄像头接口
OLED 模块接口
USB 转串口
USB 从机接口
USB HOST(OTG)
RS232/485 选择接口
RS232/模块选择接口
CAN/USB 选择接口
TF 卡接口
10M/100M 网口
JTAG/SWD 调试口
录音咪头(MIC)
立体声音频输出接口
立体声录音输入接口
多功能接口
5V 电源输入/输出口
3.3V 电源输入/输出口
参考电压设置接口
直流电源输入接口
启动模式选择配置接口
后备电池接口
引出 IO
一键下载电路
JTAG SWD
joint test action group 即联合测试行动小组
用标准的JTAG 调试,需要占用5个io 口,有些时候,可能造成io 口不够用,而用swd 则只需要2个io 口,大大节约了io 数量,但他们达到的效果是一样的
强烈建议仿真器使用swd模式
JTAG引脚说明:
TDI(Test Data In):串行输入引脚
TDO(Test Data Out):串行输出引脚
TCK(Test Clock):时钟引脚
TMS(Test Mode Select):模式选择(控制信号)引脚
TRST (Test Reset):复位引脚
SWD:Serial Wire Debug,代表串行线调试
SWD是ARM设计的协议,主要针对他们内核的芯片进行程序调试和下载。
SWD引脚说明:
SWDIO(Serial Wire Data Input Output):串行数据输入输出引脚
SWCLK(Serial Wire Clock):串行线时钟引脚
2.JTAG和SWD协议各自优缺点
JTAG优点:
a). 不限于ARM内核单片机,能支持更多单片机程序调试和下载。
b). 用途更广,用于编程,调试和生产测试.
JTAG缺点:占用引脚数比较多,比较占用板子尺寸。
SWD优点:
a). 引脚数更少,有利于节约电路板尺寸。
b). SWD具有特殊功能,例如通过其I / O线打印调试信息。
c). 在高速大数据情况下,SWD整体性能比JTAG更好。
SWD缺点:只能用于ARM内核的单片机。
第11章 STM32 时钟系统
HSE_VALUE
第17章 串口通信实验
单片机和上位机
单片机和外围器件之间
USART IIC SPI CAN USB
同步通信 可以实现高速率,大容量的数据传输
缺点,硬件复杂
异步通信 速率较低,只适用点对点传输
通信速率
传信率 比特率
传码率 波特率
CH340C
串口通信的协议层中,规定了数据包的内容,它由起始位、主题数据、校验位以及停止位组成
数据寄存器
控制器
串口波特率理解为每秒传输的二进制位数
fck 是给串口的时钟
USARTDIV 是允许有余数的,我们用四舍五入进行取整,这样会导致波特率会有所偏差,而这样小误差是可以被允许的。
USART 寄存器
串口时钟使能
串口复位
串口波特率设置
串口控制
数据发送与接收
USART_DR 来实现的,这是一个双寄存器 TDR RDR
串口状态
RXNE 读数据寄存器非空
TC 发送完成
GPIO 引脚复用功能
AFIO 复用功能寄存器
AFRH AFRL
宏定义的值都是一样的,而宏名称只是为了区分是哪个外设而已
原理图
这里需要注意的是:上图中的红色的接线引脚和蓝色的接线引脚需要用短路帽连接起来
uart.c 是异步收发器功能
usart.c 是通用同步异步收发器,暂时没有用到
函数形参
errorcode 串口错误操作信息,主要用于存放串口操作的错误信息
函数返回值
HAL_OK 表示成功,ERROR BUSY TIMEOUT
IT 函数是开启串口接收中断函数
IRQHandler 函数 中断处理公共函数
串口通信配置步骤
中断服务函数
RxCpltCallback 函数实现数据接收处理,
串口数据接收和发送
每个
串口1 的初始化函数
事实上这个函数的代码还可以直接放到usart_init 函数里面,但是hal 库为了代码的功能分层初始化,定义这个函数方便用户使用
AF_PP 推挽复用
AF_OD 开漏式复用
因为我们用到串口中断,所以还需要中断相关的配置
串口接收回调函数定义如下
在中断服务函数中,可以直接编写自己的中断服务函数
uint8_t
分数波特率发生器
USART
UART
MAX3232
TX
RX
SCLK
SW_RX
RX
接收中断
// USART
18章 独立看门狗实验
本质上是一个定时器,这个定时器有一个输出端,可以输出复位信号
IWDG 框图
IWDG 有一个输入,经过一个8位的可编程预分频器提供时钟给一个12位递减计数器
重载计数值喂狗
启动看门狗
19 章 窗口门狗WWDG 实验
通过LED0和LED1 提示程序的运行状态
WWDG 寄存器
控制寄存器 CR
配置寄存器 CFR
状态寄存器 SR
WDGA 位则是看门狗的激活位,该位由软件置1
WWDG 驱动代码
init 是独立看门狗初始化函数,主要设置预分频数、窗口值和计数器的值
第20章 基本定时器实验
STM32 由众多的定时器,其中包括
2个基本定时器,10个通用定时器
2个高级控制定时器
TIM6 和TIM7 功能完全相同,资源是完全独立的
16位 自动重载递增计数器
16位可编程预分频器
可以触发DAC的同步电路,以及生成中断DMA 请求
时钟源
控制器
时基单元
115200
电平 RS232
RS422
转换芯片
CH340C 芯片驱动
起始位 主体数据