USART

USART1 引脚 pa9 ,pa10

c 复制代码
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);

FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USART_ClearFlag(USART_TypeDef* USARTx, uint16_t USART_FLAG);
ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT);
void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);

micro lib : 精简版c语言

串口printf需要勾选 use microlib,,,对printf重定向,,,

printf默认是输出到屏幕,单片机没有屏幕,需要重定向

USART_GetFlagStatus() : 检查状态标志位

  • USART_FLAG_TXE : transmit empty
  • RXNE : receive data register not empty

检查的是 USART_SR寄存器

USART_GetITStatus() : 中断是否发生

RXNE标志位 是否为1

并且

RXNE中断使能位 是否为1

RXNE -> 状态寄存器SR里的标志位

RXNEIE -> 控制寄存器CR1里的中断使能位

中断存在,,后面的数据会溢出,可能会丢失,,没有取的数据会一直在,,,

中断标志位存在,中断会一直触发,,cpu会一直退出中断,进入中断,,反复,,所以中断获取到数据之后,必须要清除


boot引脚决定了stm32上电之后,从哪里启动代码,,,串口下载是靠芯片内部的一个系统引导程序 bootLoader完成的,,,

stm32上电会先看boot引脚,,决定启动区域

串口下载不是你写的程序在工作,,而是芯片自带的BootLoader在工作

CH340上面有 DTR ,, RTS 这两个引脚可以用来当普通引脚,,当USART下载程序的时候,, 这两个引脚一个控制 boot0的引脚电平,,一个控制 NRST :低电平复位的引脚 ,, , 就能实现代码自动下载,,不用反复的切换boot0

选项字节,,读保护

名词:

  • rcc : reset and clock control : 复位与时钟控制器
  • apb : advanced peripheral bus :高级外设总线
  • ahb: advanced high bus : 高级高性能总线
  • pclk : peripheral clock : 外设时钟
  • peripheral : 次要的,附带的
  • usart : universal synchronous asynchronous receiver transmitter
  • gpio: general purpose input output
    purpose: 目的
    parity: 平等
    baudrate : 波特率
  • cts : clear to send : 允许发送,,我允许你发了,,,接收端的rts信号传给发送端,,就是cts,,作为发送许可
  • rts :request to send : 请求发送,,我准备好了,你可以发数据给我
  • nvic: nested vectored interrupt controller : 嵌套向量中断控制器
    preemption : 优先购买,强制收购
  • nrst : negative reset : 低电平复位
相关推荐
巴巴媛66615 小时前
STM32学习笔记【32.BKP + RTC】
笔记·stm32·学习
吠品16 小时前
Python字典键获取的四种实用方法
stm32·单片机·嵌入式硬件
追兮兮18 小时前
MCUQuickStart:一键生成 STM32 / GD32 的 Keil、CMake、RTOS 工程
stm32·单片机·freertos·gd32·gcc·工程模版
小殷学长18 小时前
【单片机毕业设计25-基于stm32的导盲眼镜设计】
stm32·单片机·课程设计
辰哥单片机设计18 小时前
STM32智能病房呼叫系统
stm32·单片机·嵌入式硬件
水利行业RTU手艺人1 天前
RTU固件中的“数据保险箱”——离线数据补发系统设计
c++·stm32·单片机·物联网
bu_shuo2 天前
STM32-BOOT的三种启动方式
stm32·单片机·嵌入式硬件
梁朝辉2 天前
STM32H750VBT6中ADCINP与INN什么区别
stm32·单片机·嵌入式硬件
kebidaixu3 天前
两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 芯片详解
stm32
kebidaixu3 天前
两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 芯片调试实录:四个关键问题与解决方案
stm32