目录
ReadMe:
"问题研究过程"为我调程序中遇到问题,调试程序,又出现新的问题的过程,比较啰嗦,想快点看能不能解决自己问题的,可以只看"问题"、以及最后的"最终程序"即可。
问题:
在使用CC1101中,遇到两个问题:
1.接收数据时,接收一帧数据,丢一帧数据,特别规律
2.开始接收正常,过一段时间,就接收不到数据了,发送端程序是正常运行的,接收端程序也没死机,就是接收不到数据,接收端重新上电又可以接收
背景描述:
硬件:STM32F429、CC1101(发送端和接收端均是这俩,一模一样,只是程序不一样)
发送端程序:
int main(void)
{
u8 value[8] = {0};
u8 rxBuffer[8] = {0x00, 0x00, 0x12, 0x34, 0x55, 0xAA, 0x5A, 0xA5};
u8 leng = 0;
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(360,25,2,8); //时钟初始化为180MHz
delay_init(180); //初始化延时函数
uart_init(115200); //初始化USART
LED_Init(); //初始化LED
CC1101_PowerUp();
CC1101_SettingsReg();
/* 发送端程序 */
while(1)
{
LED0 = !LED0;
delay_ms(500);
rxBuffer[1] += 1; //起计数作用,用来查看接收端是否有丢包
printf("发送的数据:0x%X, 0x%X, 0x%X, 0x%X, 0x%X, 0x%X, 0x%X, 0x%X\r\n",
rxBuffer[0], rxBuffer[1], rxBuffer[2], rxBuffer[3], rxBuffer[4], rxBuffer[5],
rxBuffer[6], rxBuffer[7]);
CC1101_SendPacket(rxBuffer, 8); //CC1101发送
delay_ms(5