好气啊,学校给的固件库太老了,不支持F4IDISCO,只能先学用找的例程学一手理论应用了。
工程的文件列表:
这些配置文件先不看,关键的是main.c和usart.c
main.c只有几行:
这个是对usart时钟使能,这个味道,是陌生的味道。
这个是管脚配置(默认模式),这个味道,是熟悉的味道。
还是只需要写固件库函数就可以操纵串口
提取一下关键函数
USART_Sendata(USART1, SendData);
USART_GetFlagStatus(USART1, USART_FLAG_TXE)
USART_GetFlagStatus(USART1,USART_FLAG_RXNE)
*GetData = USART_ReceiveData(USART);
再提炼一下,是TXE和RXNE,从上一篇的链接可知,TXE是发送寄存器为空的标志位,RXNE是读取寄存器非空的标志位。由于RESET是0的意思,所以:
发送数据函数的while循环用于等待发送完毕;
接收数据函数的if语句用于判断是否接收成功。
其中的逻辑关系就不加解释啦。
暂时懒得下新的固件库了,因为cube可以用,下一篇就用stm32cube IDE来做usart的实际应用啦!