USART

USART USART1 引脚 pa9 pa10voidUSART_SendData(USART_TypeDef*USARTx,uint16_tData);uint16_tUSART_ReceiveData(USART_TypeDef*USARTx);FlagStatusUSART_GetFlagStatus(USART_TypeDef*USARTx,uint16_tUSART_FLAG);voidUSART_ClearFlag(USART_TypeDef*USARTx,uint16_tUSART_FLAG);ITStatusUSART_GetITStatus(USART_TypeDef*USARTx,uint16_tUSART_IT);voidUSART_ClearITPendingBit(USART_TypeDef*USARTx,uint16_tUSART_IT);micro lib 精简版c语言串口printf需要勾选 use microlib对printf重定向printf默认是输出到屏幕单片机没有屏幕需要重定向USART_GetFlagStatus(): 检查状态标志位USART_FLAG_TXE transmit emptyRXNE receive data register not empty检查的是 USART_SR寄存器USART_GetITStatus(): 中断是否发生RXNE标志位 是否为1并且RXNE中断使能位 是否为1RXNE - 状态寄存器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 transmittergpio general purpose input outputpurpose: 目的parity 平等baudrate 波特率cts clear to send 允许发送我允许你发了接收端的rts信号传给发送端就是cts作为发送许可rts request to send 请求发送我准备好了你可以发数据给我nvic nested vectored interrupt controller : 嵌套向量中断控制器preemption 优先购买强制收购nrst negative reset 低电平复位