您的位置 首页 基础

调试STM8/stm32串口时发现的问题

描述:串口中断1用来接收到的数据,我是用串口助手发送一个8字节的数据,然后我想查看8个字节是否被单片接收,比如数据是0x01,0x02,0x03,0x

描绘:串口中止1用来接纳到的数据,我是用串口帮手发送一个8字节的数据,然后我想检查8个字节是否被单片接纳,比方数据是0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08这8个数值,串口中止

#pragma vector=ITC_IRQ_UART1_RX + 2
__interrupt void Uart1RxdInt(void)
{ //此函数内已完结清中止标志
u8 ret;
if(UART1_GetFlagStatus(UART1_FLAG_RXNE)!=RESET)
{
tmp = UART1_ReceiveData8();
ret=UART_KbdPkgRead(tmp);
if(ret==0)
{
KBD_Flag_RECE=1;
}
}
}
我在ret的当地设了个断点,然后每次发送进入中止的时分发现能够中止在那,而且此刻承受的数据确实也是0x01,然后有全速运转,承受的数据也是0x02,在全速运转就可能又是0x01或许底子不会停下来,
此刻我才知道我犯了一个过错,当发送一串数据时,断点不应该设在中止内,由于cpu在断点逗留处,她是不会停下的,也便是那串数据会被错失,假如你发送一个数字,那就不会错失了。
接下来该怎么办呢?
进入中止的函数,比方我的是UART_KbdPkgRead()。进入后能够编写一个小程序,用来判别承受得到数据是否是要发送的,比方if(dat==0x01),if(dat==0x02).这样在他前边设置断点,用来判别这一串数据是否被单片机接纳到了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/257137.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部