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 : 低电平复位
相关推荐
Zw-awa10 小时前
编码器读到的到底是什么:从脉冲到速度
stm32
笨笨饿12 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
沐欣工作室_lvyiyi21 小时前
基于云平台的输液智能监测控制系统设计与实现(论文+源码)
stm32·单片机·单片机毕业设计·电子信息工程毕业设计
EatFan1 天前
当 CubeMX 遇上 AI Agent:用 MCP 让 AI 直接生成 STM32 HAL 工程
人工智能·stm32·嵌入式硬件·cubemx·stm32cubemx·hal·mcp
千秋岁rr1 天前
13.SPI
stm32
LCG元1 天前
STM32L431 QSPI驱动W25Q256实战:内存映射模式配置、4字节地址模式陷阱与读写吞吐实测
stm32·单片机·嵌入式·flash
lhbweilai1 天前
深挖FreeRTOS内核实现(上)
stm32·单片机·链表
Brilliantwxx1 天前
【STM32】 DMA 源码分析与实战(下):DMA 收发状态机与 HAL 分层
android·开发语言·stm32·单片机·嵌入式硬件·mcu
铅笔小新z1 天前
【stm32】DMA 源码分析与实战
stm32·单片机·嵌入式硬件
笨笨饿1 天前
#141_ Codex 本地 AI 代理工具链工作流重构:Headroom、Scrapling、Archify 统一接入
开发语言·人工智能·stm32·单片机·嵌入式硬件·ui·重构