怎样使cc1101具备收发一体功能

硬件:stm8l101x3 + cc1101

目标:实现收发一体的功能

问题:想让CC1101具备收发一体的功能,但是只能接收到信息,发送时不能主动发送信息只能在接受到信息后发送单个字符,有没有大神知道下面代码哪里出问题了

-代码
main.c

#include "main.h ////main.h 中含有TX/RX、软件SPI/硬件SPI选择配置选项

uint8_t g_UartRxBuffer[ 100 ] = { 0 };
uint8_t g_RF24L01RxBuffer[ 32 ] = { 0 };

int main( void )
{
uint8_t i = 0;
uint8_t q = 0;

//串口初始化
drv_uart_init( 9600 );

//LED初始化
drv_led_init( );

//SPI初始化
drv_spi_init( );

//CC1101初始化
CC1101_Init( );
for( i = 0; i < 6; i++ )
{
    led_red_flashing( );
    led_green_flashing( );
    drv_delay_ms( 500 );
}

while( 1 )
{

    CC1101_Clear_RxBuffer( );   //清空接收缓冲区
    CC1101_Set_Mode( RX_MODE );  
    i = CC1101_Rx_Packet( g_RF24L01RxBuffer );        //接收字节
    if( 0 != i )
    {
        led_green_flashing( );
        drv_uart_tx_bytes( g_RF24L01RxBuffer, i );    //输出接收到的字节
         i = 0;
    }
    q = drv_uart_rx_bytes( g_UartRxBuffer );     //串口接收数据
    //CC1101_Set_Mode( TX_MODE );
        if( 0 != q )
        {
        
            CC1101_Tx_Packet( g_UartRxBuffer, 3 , ADDRESS_CHECK );    //发送数据包
            drv_delay_ms( 1000 );    
            led_red_flashing( );
           q = 0;
        }        
}    

}

帮你改了一下

#include "main.h"

uint8_t g_UartRxBuffer[100] = {0};
uint8_t g_RF24L01RxBuffer[32] = {0};

int main(void)
{
    uint8_t i = 0;
    uint8_t q = 0;

    // 串口初始化
    drv_uart_init(9600);

    // LED初始化
    drv_led_init();

    // SPI初始化
    drv_spi_init();

    // CC1101初始化
    CC1101_Init();

    for (i = 0; i < 6; i++)
    {
        led_red_flashing();
        led_green_flashing();
        drv_delay_ms(500);
    }

    while (1)
    {
        CC1101_Clear_RxBuffer(); // 清空接收缓冲区
        CC1101_Set_Mode(RX_MODE);
        i = CC1101_Rx_Packet(g_RF24L01RxBuffer); // 接收字节

        if (i != 0)
        {
            led_green_flashing();
            drv_uart_tx_bytes(g_RF24L01RxBuffer, i); // 输出接收到的字节
            i = 0;
        }

        q = drv_uart_rx_bytes(g_UartRxBuffer); // 串口接收数据

        if (q != 0)
        {
            CC1101_Set_Mode(TX_MODE);
            CC1101_Tx_Packet(g_UartRxBuffer, q, ADDRESS_CHECK); // 发送数据包
            drv_delay_ms(1000);
            led_red_flashing();
            q = 0;
        }
    }
}