STM32、串口、一键下载
来源:互联网 发布:男性发型设计软件 编辑:程序博客网 时间:2024/06/12 09:32
串口这个让我研究了两天。
STM的串口是USART是可以同步也可以异步,一般用异步。
可以看出 只有将串口拉低,才能进行传输。另外 串口传输是一位一位传的,可以通过中断函数判断。每发一位,中断一次。
程序里对串口操作
1、GPIO时钟使能,USART时钟使能
2、串口IO模式,一个模拟输入,一个复用推挽输出。
3、USARTinit: 96、n、8、1等设置
4、NVIC中断优先级
5、涉及的库函数:
RCC_APB2PeriphClockCmd()
GPIO_Init()
USART_Init()
USART_Cmd()
USART_ITConfig()
NVIC_Init(&NVIC_InitStructure)
USART_SendData()
USART_GetFlagStatus()
void USART1_IRQHandler (void)
USART_GetITStatus(
USART_ReceiveData()
6.通过研究发现,将DTR变为低电平,即可正常传输。
7、仔细研究分析后。每次下载程序后,需要设置DTR。(通过usb一键下载程序的原理。)
我在程序中设置串口的模拟输入为低电平,并不能改善此现象。接着我发现,此开发板下载程序为usb下载,ISP模式。
从原理图可知L2303的RTS控制B0,DTR控制RST.
我们要达到下载的目的,就必须先让RTS拉高B0(设置B0为1),然后再让DTR控制RST为低(STM32为低电平复位).然后再释放RTS为高(停止复位),然后再开始串口下载代码(此时B0可以为高,也可以为低).
DTR电平置低(-3--12V),复位(DTR接了RST)
RTS置高(+3-+12V),选择进入BootLoader(RTS接了B0)
...延时100毫秒
DTR电平变高(+3-+12V)释放复位(释放复位,但是此时B0为高,所以进入ISP模式)
开始连接...4, 接收到:1F (连接成功) 转自——正点原子
所以每次下载程序后,DTR都为低。
然而DTR为高时,数据终端就绪,才能进行传输。所以需要拉高DTR位。
- STM32、串口、一键下载
- STM32串口一键下载电路
- STM32,一键下载。
- STM32串口下载
- STM32串口下载
- STM32学习笔记:串口一键下载电路(CH340)的理解
- 第一章:STM32串口ISP下载
- STM32 串口DMA(一)
- stm32串口学习(一)
- STM32单片机的ISP一键下载
- stm32下载方式之串口ISP\swd
- FlyMcu串口ISP下载STM32程序教程
- STM32串口下载方法-USART BootLoader
- FlyMcu串口ISP下载STM32程序教程
- STM32 串口ISP下载方式解读
- STM32用串口(USB串口)下载程序的方法
- STM32串口实现1-wire(一)
- stm32串口中断接收一帧数据
- caffe 改动后的重新编译
- R语言常用数学函数
- elsaticsearch聚合内存控制
- 产品学习:北京市西城区宣武医院医疗物联网项目
- vue框架对接手机app
- STM32、串口、一键下载
- Java_log2000_线程2
- Java 几分钟前 几小时前
- ip转换为纯数字(直接用数字访问网站)
- 一些Linux Shell中的权限相关知识总结
- 一个在家乡创业者的崎岖困难
- 单链表应用
- 【漏洞公告】CVE-2017-7669:Apache Hadoop远程权限提升漏洞
- Android中判断listview是否滑动到顶部和底部方法