打印
[STM32]

求助:STM32串口调试实验奇怪现象

[复制链接]
1395|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fl090726|  楼主 | 2013-10-26 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠前辈,我刚刚开始学stm32,在做串口发送数据实验时出现了很奇怪的现象:
一.程序在开发板中执行时:

1).直接开发板运行,向串口发送ABCDEFGHIJKLMNOPQRST,但是串口助手显示的是BCDEFGHIJKLMNOPQRST,丢掉了第一个'A';
2).使用Jlink全速运行时,串口调试助手显示的是BCDEFGHIJKLMNOPQRST,丢掉了第一个'A',和上面一样的现象;
3).使用Jlink单步调试时,串口调试助手显示的是ABCDEFGHIJKLMNOPQRST,没有丢失数据

二.直接使用keil4仿真器时,USART1仿真的结果实ACDEFGHIJKLMNOPQRST,丢失了'B'
真是搞不明白,希望前辈们指点指点,代码如下:
int main(void)
{
float DIV;
u16 M,F,BRR;
u16 Baud;
int i;
u8 data;
RCC_Configuration();
GPIO_Configuration();
/*CR1中UE位使能,M位定义字长,TE发送使能,CR2中选择停止位        */
USART1->CR1 |=(1<<13);
USART1->CR1 &= ~(1<<12);
USART1->CR2 &=~((1<<12)|(1<<13));
USART1->CR1 |=(1<<3);                                          
/*设置波特率*/
Baud=9600;
DIV=(float)(72*1000*1000)/(Baud*16);
M=DIV;
F=(DIV-M)*16;
BRR=(M<<4)+F;
USART1->BRR=BRR;
/*发送数据    向寄存器DR写入数据ABCDEFGHIJKLMNOPQRST
*/
data='A';
for(i=0;i<20;i++)
{       
         USART1->DR=data;
         data++;
         while((USART1->SR &0x40)==0) ;        //判断是否发送完成
}
}






相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

55

帖子

1

粉丝