打印
[单片机芯片]

ch579串口串口多字节发送程序怎么发送了2次?

[复制链接]
1181|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shzps|  楼主 | 2022-3-12 07:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序就基本是官方的:
        case UART_II_RECV_RDY:          // 数据达到设置触发点
            for(i=0; i!=trigB; i++)
            {
                RxBuff[i] = UART1_RecvByte();
                UART1_SendString( p, 32 );                        /* 串口多字节发送 */
            }
            break;
接收到的数据是两次:
[2022-03-12 07:12:40.394]# RECV HEX>
6C 3C CC C0 EC 3B CA C0 EC 2F CC C0 6C B8 C8 C0 EC CA C7 C0 6C 0E C3 C0 29 5C 5B 40 73 F5 79 42 6C 3C CC C0 EC 3B CA C0 EC 2F CC C0 6C B8 C8 C0 EC CA C7 C0 6C 0E C3 C0 29 5C 5B 40 73 F5 79 42

使用特权

评论回复
沙发
WCHTECH75| | 2022-3-14 10:42 | 只看该作者
EVT中串口接收的逻辑是接收七个数据后将七个数据发出去,最后超时的1-6个数据再发出去,(若fifo设置为7)而你这边的逻辑是接收七个数据后,发送七次32字节的数据。

使用特权

评论回复
板凳
shzps|  楼主 | 2022-3-17 20:03 | 只看该作者
WCHTECH75 发表于 2022-3-14 10:42
EVT中串口接收的逻辑是接收七个数据后将七个数据发出去,最后超时的1-6个数据再发出去,(若fifo设置为7) ...

那么我现在怎么改设置,发送一次就行,逻辑不是很明白:
void UART1_DefInit( void )
{       
    UART1_BaudRateCfg( 1000000 );
    R8_UART1_FCR = (2<<6) | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN;                // FIFO打开,触发点4字节
    R8_UART1_LCR = RB_LCR_WORD_SZ;       
    R8_UART1_IER = RB_IER_TXD_EN;
    R8_UART1_DIV = 1;       
}


void UART1_IRQHandler(void)
{
    UINT8 i;
          UINT8 *p = vvv.MyBuf1;
   
    switch( UART1_GetITFlag() )
    {
        case UART_II_LINE_STAT:        // 线路状态错误
            UART1_GetLinSTA();
            break;
        
        case UART_II_RECV_RDY:          // 数据达到设置触发点
            for(i=0; i!=trigB; i++)
            {
                RxBuff = UART1_RecvByte();
                UART1_SendString( p, 32 );                        /* 串口多字节发送 */
            }
            break;
        
        case UART_II_RECV_TOUT:         // 接收超时,暂时一帧数据接收完成
            i = UART1_RecvString(RxBuff);
            UART1_SendString( RxBuff, i );
            break;
        
        case UART_II_THR_EMPTY:         // 发送缓存区空,可继续发送
            break;
        
        case UART_II_MODEM_CHG:         // 只支持串口0
            break;
        
        default:
            break;
    }
}

使用特权

评论回复
地板
shzps|  楼主 | 2022-3-17 20:29 | 只看该作者
搞明白了。

使用特权

评论回复
5
郑元杰| | 2022-8-26 11:10 | 只看该作者
请问怎么改的

使用特权

评论回复
6
WCHTECH75| | 2022-8-27 10:53 | 只看该作者
可以参照EVT中UART例程进行修改

使用特权

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

本版积分规则

21

主题

51

帖子

0

粉丝