这里先给出程序源码:
调用库函数:
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "delay.h"
int main()
{
u8 i;
u8 len;
u32 times = 0;
//中断分组
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//初始化延时函数
delay_init(84);
//初始化串口
uart_init(115200);
//初始化led
LED_Init();
//循环
LED0 = 0;
while (1)
{
//检验接受标志
//若接收到
if (USART_RX_STA & 0x8000) //位15判定是否接收到数据
{
//确定接受信息的长度
len = USART_RX_STA & 0x3fff; //位0到位14与1位与
//输出提示信息
printf("\r\n您发送的消息为:\r\n");
//接受信息并串口输出
for (i = 0; i < len; i++) {
USART_SendData(USART1, USART_RX_BUF[i]); //使用库函数SendData向串口1发送数据
//直到接收结束为止
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET); //使用库函数检验发送是否接受完成
}
printf("\r\n\r\n");
//检验标志复位
USART_RX_STA = 0;
}
//没有接收到
else
{
times++;
if (times % 30 ==0) LED0 = !LED0;

本文介绍了如何使用STM32的库函数进行串口通信,提供了相应的程序源码,并展示了通过库函数版本实现的正确输出结果,伴有红色LED灯闪烁的验证。
最低0.47元/天 解锁文章
9368

被折叠的 条评论
为什么被折叠?



