|
- void halRfWriteRfSettings(void)
- {
- CC1101_Write_Reg(CC1101_FSCTRL0, rfSettings.FSCTRL2); //自已加的
- // Write register settings
- CC1101_Write_Reg(CC1101_FSCTRL1, rfSettings.FSCTRL1);
- CC1101_Write_Reg(CC1101_FSCTRL0, rfSettings.FSCTRL0);
- CC1101_Write_Reg(CC1101_FREQ2, rfSettings.FREQ2);
- CC1101_Write_Reg(CC1101_FREQ1, rfSettings.FREQ1);
- CC1101_Write_Reg(CC1101_FREQ0, rfSettings.FREQ0);
- CC1101_Write_Reg(CC1101_SYNC1, 0x2D);
- CC1101_Write_Reg(CC1101_SYNC0, 0xD4);
- CC1101_Write_Reg(CC1101_MDMCFG4, rfSettings.MDMCFG4);
- CC1101_Write_Reg(CC1101_MDMCFG3, rfSettings.MDMCFG3);
- CC1101_Write_Reg(CC1101_MDMCFG2, rfSettings.MDMCFG2);
- CC1101_Write_Reg(CC1101_MDMCFG1, rfSettings.MDMCFG1);
- CC1101_Write_Reg(CC1101_MDMCFG0, rfSettings.MDMCFG0);
- CC1101_Write_Reg(CC1101_CHANNR, rfSettings.CHANNR);
- CC1101_Write_Reg(CC1101_DEVIATN, rfSettings.DEVIATN);
- CC1101_Write_Reg(CC1101_FREND1, rfSettings.FREND1);
- CC1101_Write_Reg(CC1101_FREND0, rfSettings.FREND0);
- CC1101_Write_Reg(CC1101_MCSM0 , rfSettings.MCSM0 );
- CC1101_Write_Reg(CC1101_FOCCFG, rfSettings.FOCCFG);
- CC1101_Write_Reg(CC1101_BSCFG, rfSettings.BSCFG);
- CC1101_Write_Reg(CC1101_AGCCTRL2, rfSettings.AGCCTRL2);
- CC1101_Write_Reg(CC1101_AGCCTRL1, rfSettings.AGCCTRL1);
- CC1101_Write_Reg(CC1101_AGCCTRL0, rfSettings.AGCCTRL0);
- CC1101_Write_Reg(CC1101_FSCAL3, rfSettings.FSCAL3);
- CC1101_Write_Reg(CC1101_FSCAL2, rfSettings.FSCAL2);
- CC1101_Write_Reg(CC1101_FSCAL1, rfSettings.FSCAL1);
- CC1101_Write_Reg(CC1101_FSCAL0, rfSettings.FSCAL0);
- CC1101_Write_Reg(CC1101_FSTEST, rfSettings.FSTEST);
- CC1101_Write_Reg(CC1101_TEST2, rfSettings.TEST2);
- CC1101_Write_Reg(CC1101_TEST1, rfSettings.TEST1);
- CC1101_Write_Reg(CC1101_TEST0, rfSettings.TEST0);
- CC1101_Write_Reg(CC1101_IOCFG2, rfSettings.IOCFG2);
- CC1101_Write_Reg(CC1101_TEST2, rfSettings.TEST2);
- CC1101_Write_Reg(CC1101_TEST1, rfSettings.TEST1);
- CC1101_Write_Reg(CC1101_TEST0, rfSettings.TEST0);
- CC1101_Write_Reg(CC1101_IOCFG2, rfSettings.IOCFG2);
- CC1101_Write_Reg(CC1101_IOCFG0, rfSettings.IOCFG0);
- CC1101_Write_Reg(CC1101_PKTCTRL1, rfSettings.PKTCTRL1);
- CC1101_Write_Reg(CC1101_PKTCTRL0, rfSettings.PKTCTRL0);
- CC1101_Write_Reg(CC1101_ADDR, rfSettings.ADDR);
- CC1101_Write_Reg(CC1101_PKTLEN, rfSettings.PKTLEN);
- CC1101_Write_Reg(CC1101_FIFOTHR, 0x41);
- }
- //*******************************************************************************
- //函數(shù)名:void RESET_CC1100(void)
- //輸入:無
- //輸出:無
- //功能描述:復(fù)位CC1100
- //*****************************************************************************************
- uint8_t ResetCC1100(void)
- {
- uint8_t Reset=0;
-
- CC1101_SET_CSN_LOW( );
- drv_delay_us(100);
-
- Reset=DelayMiso();
- CC1101_Write_Cmd( CC1101_SRES ); //寫入復(fù)位命令
- Reset+=DelayMiso();
-
- CC1101_SET_CSN_HIGH( );
- return Reset;
- }
- //*****************************************************************************************
- //函數(shù)名:void POWER_UP_RESET_CC1100(void)
- //輸入:無
- //輸出:無
- //功能描述:上電復(fù)位CC1100
- //*****************************************************************************************
- bool UpPowerResetCC1100(void)
- {
- uint8_t loop=5;
- while(loop--)
- {
- CC1101_SET_CSN_HIGH( );
- drv_delay_us(500);
- CC1101_SET_CSN_LOW( );
- drv_delay_us(500);
- CC1101_SET_CSN_HIGH( );
- drv_delay_us(5000);
- if(ResetCC1100()==0)
- return (true);
- }
- return (false);
- }
- /**
- * @brief :CC1101初始化
- * @param :無
- * @note :無
- * @retval:無
- */
- void CC1101_Init( void )
- {
- CC1101_Gpio_Init();
- if(UpPowerResetCC1100())
- {
- halRfWriteRfSettings();
- CC1101_Write_Multi_Reg( CC1101_PATABLE, (uint8_t*)PaTabel_Max, 8 );
- CC1101_Write_Cmd( CC1101_SIDLE );
- CC1101_Write_Cmd( CC1101_SFRX );
- CC1101_Write_Cmd( CC1101_SFTX );
- }
- else
- Chip_UART_SendBlocking(LPC_USART0, "init_error", 10);
- }
- int main(void)
- {
- SystemCoreClockUpdate();
-
- Board_Init();
- /* Setup UART */
- Chip_UART_Init(LPC_USART0);
- Chip_UART_ConfigData(LPC_USART0, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);
- Chip_Clock_SetUSARTNBaseClockRate((9600 * 16), true);
- Chip_UART_SetBaud(LPC_USART0, 9600);
- Chip_UART_Enable(LPC_USART0);
- Chip_UART_TXEnable(LPC_USART0);
- // Enable receive data and line status interrupt
- Chip_UART_IntEnable(LPC_USART0, UART_INTEN_RXRDY);
- Chip_UART_IntDisable(LPC_USART0, UART_INTEN_TXRDY); // May not be needed
- /* preemption = 1, sub-priority = 1 */
- NVIC_EnableIRQ(UART0_IRQn);
-
- /* Setup UART1 */
- Chip_UART_Init(LPC_USART1);
- Chip_UART_ConfigData(LPC_USART1, UART_CFG_DATALEN_8 | UART_CFG_PARITY_NONE | UART_CFG_STOPLEN_1);
- Chip_Clock_SetUSARTNBaseClockRate((9600 * 16), true);
- Chip_UART_SetBaud(LPC_USART1, 9600);
- Chip_UART_Enable(LPC_USART1);
- Chip_UART_TXEnable(LPC_USART1);
- /* Enable receive data and line status interrupt */
- Chip_UART_IntEnable(LPC_USART1, UART_INTEN_RXRDY);
- Chip_UART_IntDisable(LPC_USART1, UART_INTEN_TXRDY); /* May not be needed */
- /* preemption = 1, sub-priority = 1 */
- NVIC_EnableIRQ(UART1_IRQn);
- /* Initial message sent using blocking method to prevent ring buffer overflow */
- Chip_UART_SendBlocking(LPC_USART0, inst1, sizeof(inst1) - 1);
- Chip_UART_SendBlocking(LPC_USART1, inst1, sizeof(inst1) - 1);
-
- /* MRT Initialization and disable all timers */
- Chip_MRT_Init();
- Chip_MRT_SetEnabled(Chip_MRT_GetRegPtr(0));
- Chip_MRT_SetEnabled(Chip_MRT_GetRegPtr(1));
-
- /* Enable the interrupt for the MRT */
- NVIC_EnableIRQ(MRT_IRQn);
-
- drv_spi_init();
- CC1101_Init();
- while (1)
- {
- uint8_t i=0;
- CC1101_Clear_TxBuffer( );
- CC1101_Set_Mode( CC1101_SRX );
- CC1101_Rx_Packet( Txbuffer );
- while(i<=0xA4)
- {
- if((Txbuffer[i] == 0xA4)&&(i+8<0xA4))
- {
- Chip_UART_SendBlocking(LPC_USART0, &Txbuffer[i],8);
- Chip_UART_SendBlocking(LPC_USART1, &Txbuffer[i],8);
- i+=8;
- }
- else
- i++;
- }
- Txleng= 0;
- }
- }
復(fù)制代碼 |
-
-
LPC824+CC1101.7z
2019-8-21 17:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
264.69 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5
|