新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2021-4-13
- 在线时间
- 13 小时
|

楼主 |
发表于 2021-4-15 11:39:35
|
显示全部楼层
使用STM32F1战舰版板子,做串口实验那里
用串口工具给单片机发送数据,发送过快会导致串口工具上显示乱码、串口工具不显示数据、发送一串数字会丢失几个这种现象
波特率115200/9600都试了还是不行
串口线大概一米
下面是主函数
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
int main(void)
{
u16 t;
u16 a='4';
u16 len;
u16 times=0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200);
LED_Init();
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
printf("\r\n您发送的消息为:\r\n\r\n");
for(t=0;t<len;t++)
{
USART_ClearFlag(USART1,USART_FLAG_TC USART_SendData(USART1, USART_RX_BUF[t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
if(USART_RX_BUF[t]==a)
LED0=0;
else
LED0=1;
}
printf("\r\n\r\n");//插入换行
USART_RX_STA=0;
}
else
{
times++;
if(times%5000==0)
{
printf("hello world \r\n\r\n");
}
delay_ms(10);
}
}
}
本人刚开始学单片机不到一周,纯小白,麻烦大佬解答一下,非常感谢!!! |
|