| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include "main.h"
- /**
- ******************************************************************************
- * @author 泽耀科技 ASHINING
- * @version V3.0
- * @date 2021-11-24
- * @brief 主函数C文件
- ******************************************************************************
- * @attention
- *
- * 官网 : http://www.ashining.com
- * 淘宝 : https://shop105912646.taobao.com
- * 阿里巴巴: https://cdzeyao.1688.com
- ******************************************************************************
-
- //==========引脚接线图
- 1、STM32串口配置:串口1(PA9-TXD PA10-RXD) 波特率-9600 8位数据位 1位停止位
- STM32与SX1268是软件SPI通信
-
- 2、LED LED0 PC3 --发送指示灯
- LED1 PC2 --接收指示灯
- 3、射频模块与单片机接线---最少接线图
- SX1268 STM32
- SCK PA5 --SPI时钟输出
- MISO PA6 --SPI数据输入
- MOSI PA7 --SPI数据输出
- NSS PA4 --SPI片选
-
- NRST PA3 --复位
- BUSY PA2 --忙
- TXEN PA1 --发送使能
- RXEN PA0 --接收使能
- DIO1 PC0 --(按需求使用)
- 4、程序功能--射频收发一体
- 射频发送:SX1268发送单片机串口接收到的数据
- 射频接收:SX1268接收到数据以后,通过单片机串口打印出来
- */
- uint8_t g_RxBuffer[ 256 ] = { 0 };
- uint8_t g_RxLen = 0;
- int main()
- {
- uint8_t irqRegs=0;
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //NVIC分组2:2位抢占优先级,2位响应优先
- USART1_Init(9600); //UASRT1初始化
- LEDGPIO_Init();
- TIMx_Init(TIM2,10); //定时器2初始化
-
- RadioInit(); //SX1268初始化
- RadioStandby();
- {
- RadioSetTxConfig(MODEM_LORA, 22, 0,
- 2,11,
- 1, 12,
- FALSE, TRUE ,
- FALSE,0, 0, 3000);
- RadioSetChannel(433000000);
- }
-
- USART_SendString( USART1 , "STM32F103+SX1268 收发测试\r\n");
- LED_Toogle(3);
-
- RadioRx(0);
-
- while(1)
- {
- //SX1268发送
- if( Uart_dat.Receive_OK )
- {
- RadioSend( Uart_dat.Recv_Buff , Uart_dat.Receive_Num , 0 );
- Clear_Uart_Dat( &Uart_dat );
- USART_SendString( USART1 , "发送完成\r\n");
- LED0_TOOGLE; //发送指示
- }
-
- //SX1268接收
- irqRegs = RadioGetIrqStatus();
- if( ( irqRegs & IRQ_RX_DONE ) == IRQ_RX_DONE )
- {
- RadioClearIrqStatus(IRQ_RADIO_ALL);
- RadioRx(0); //变为接收状态
- RadioGetBuffer( g_RxBuffer, &g_RxLen, 255 );
-
- if( g_RxLen )
- {
- USART_SendBuffDat( USART1 , g_RxBuffer , g_RxLen );
- LED1_TOOGLE; //接收指示灯
- }
- }
- }
- }
|