硬件: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;
}
}
}