打印
[STM8]

串口发送多字节是出错

[复制链接]
1576|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
歇斯底里|  楼主 | 2017-4-24 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我这样修改程序,在中断里写接收到了2个字节的数据 就把标志位flagTxd置1,主函数里判断flagTxd是否置1,然后把数据给发出来,这样是收发没问题的,但是 if(UART_RX_NUM==2)这个计数的条件 我换成大于等1他就是一个字节正常收发,大于等于2他就是两个字节正常收发,多了少了都发的接受错误的数据,感觉 RX_MUN没有在2个函数同步操作,我想不通原因,纠结了好久,求教各位老师了。
INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)
{
    /* In order to detect unexpected events during development,
       it is recommended to set a breakpoint on the following instruction.
    */
      if(UART1_GetITStatus(UART1_IT_RXNE)!= RESET)                     
          RxBuffer[ UART_RX_NUM++] = UART1_ReceiveData8();
         if(UART_RX_NUM==2)
         {
          flagTxd=1;
         }
       UART1_ClearITPendingBit(UART1_IT_RXNE);


int main( void )
{
     u8 i,len1;
  sysInit();
   while(1)
  {
     
if(flagTxd==1)
       {
         flagTxd=0;
        len1=UART_RX_NUM;        //得到此次接收到的数据长度
        UART_RX_NUM=0;
       //UART1_Send_Byte(len1);   
      for(i=0;i<len1;i++)
        {
           UART1_Send_Byte(RxBuffer);
          }
         delay_us(50);


void UART1_Send_Byte(u8 byte)
{
    UART1_SendData8(byte);//UART1发送8位数据
   while(UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET);//等待发送完成
}



沙发
aiwosuoai1992| | 2017-5-3 15:35 | 只看该作者
大于等于1就一个字节收发,没毛病,条件满足了呀

使用特权

评论回复
板凳
fentianyou| | 2017-5-3 16:41 | 只看该作者
是不是收发速度跟不上?

使用特权

评论回复
地板
xiaoyaodz| | 2017-5-3 16:42 | 只看该作者
这个在串口里面接收不需要这么复杂吧。

使用特权

评论回复
5
febgxu| | 2017-5-3 16:43 | 只看该作者
串口接收的速度比较快吗?

使用特权

评论回复
6
febgxu| | 2017-5-3 16:44 | 只看该作者
UART_RX_NUM直接程序里面自++了,所以没有0这个

使用特权

评论回复
7
sdlls| | 2017-5-3 16:45 | 只看该作者
楼主是不是数据发送少了一位?

使用特权

评论回复
8
sdlls| | 2017-5-3 16:46 | 只看该作者
楼主发送的数据存在什么不对?

使用特权

评论回复
9
fentianyou| | 2017-5-3 16:47 | 只看该作者
串口fifo有限。

使用特权

评论回复
10
xiaoyaodz| | 2017-5-3 16:47 | 只看该作者
你接收到的数据哪里不正常?是数据错位了吗?

使用特权

评论回复
11
febgxu| | 2017-5-3 16:47 | 只看该作者
建议楼主在RxBuffer[ UART_RX_NUM]  

    UART_RX_NUM++

使用特权

评论回复
12
sdlls| | 2017-5-3 16:47 | 只看该作者
多字节数据存在问题,可能及时没有访问到所有的数据。

使用特权

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

本版积分规则

22

主题

70

帖子

1

粉丝