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 : 低电平复位
相关推荐
Sakura_j_h_3 小时前
STM32F103 定时器的三种用法:PWM 输出、输入捕获与编码器接口
stm32·嵌入式·输入捕获·定时器·pwm·编码器·1024程序员节
Lxx_Zw3 小时前
机器周期与共地:时钟基准和电压参考基准
stm32·单片机·嵌入式硬件
Zw-awa5 小时前
LED 灯珠与限流电阻
stm32
深圳老胡6 小时前
STM32 开发中 Trae 内置模型怎么选:Seed、MiniMax、GLM、DeepSeek、Kimi、Qwen 全对比
笔记·stm32·单片机·嵌入式硬件·代码规范·1024程序员节
西安同步电子8 小时前
时统卡驱动踩坑:Windows 和 Linux 下时间同步的底层差异
linux·stm32·单片机
iCxhust10 小时前
stm32f103c8t6 boot0设置
stm32·单片机·嵌入式硬件·1024程序员节
创界工坊工作室11 小时前
58-基于51单片机的多自由度机械手控制系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus
新晨单片机设计1 天前
S028C-基于STM32单片机WIFI智能电表(温度)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·wifi智能电表
1234567890@world1 天前
正点原子 ATK-DLRK3568 嵌入式Linux系统开发手册V1.3 详细总结
linux·stm32·单片机
创界工坊工作室1 天前
46-基于AT89C51脉冲式电表数据采集器设计
stm32·单片机·嵌入式硬件·51单片机·proteus