-
// RED
-
#define LED1_PIN GPIO_PIN_2 //因为我们只用了三个指示灯,而且是从第二个成员开始定义的,所以这第一个是无效的,可以随便填一个
-
#define LED1_GPIO_PORT GPIOB
-
//#define LED1_GPIO_CLK RCC_APB2Periph_GPIOE//以前的固件库时钟定义,HAL库是不支持的,所以注释掉
-
// GREEN
-
#define LED2_PIN GPIO_PIN_2 //无线通信接收指示灯
-
#define LED2_GPIO_PORT GPIOB
-
//#define LED2_GPIO_CLK RCC_APB2Periph_GPIOE//以前的固件库时钟定义,HAL库是不支持的,所以注释掉
-
// DBG1
-
#define LED3_PIN GPIO_PIN_1 //无线通信发送指示灯
-
#define LED3_GPIO_PORT GPIOB
-
//#define LED3_GPIO_CLK RCC_APB2Periph_GPIOE//以前的固件库时钟定义,HAL库是不支持的,所以注释掉
-
// DBG2
-
#define LED4_PIN GPIO_PIN_0 //无线通信网络指示灯
-
#define LED4_GPIO_PORT GPIOB
-
//#define LED4_GPIO_CLK RCC_APB2Periph_GPIOE//以前的固件库时钟定义,HAL库是不支持的,所以注释掉
-
/*!
-
* SX1232 SPI NSS I/O definitions
-
*/
-
#if defined( STM32F4XX ) || defined( STM32F2XX )
-
#define NSS_IOPORT GPIOA
-
#define NSS_PIN GPIO_Pin_15
-
#else
-
#define NSS_IOPORT GPIOA
-
#define NSS_PIN GPIO_PIN_7
-
#endif
-
-
/*!
-
* SX1232 DIO pins I/O definitions
-
*/
-
#if defined( STM32F4XX ) || defined( STM32F2XX )
-
#define DIO0_IOPORT GPIOG
-
#define DIO0_PIN GPIO_Pin_13
-
#else
-
#define DIO0_IOPORT GPIOA
-
#define DIO0_PIN GPIO_PIN_11
-
#endif
-
-
#if defined( STM32F4XX ) || defined( STM32F2XX )
-
#define DIO1_IOPORT GPIOB
-
#define DIO1_PIN GPIO_Pin_8
-
#else
-
#define DIO1_IOPORT GPIOA
-
#define DIO1_PIN GPIO_PIN_12
-
#endif
-
-
#if defined( STM32F4XX ) || defined( STM32F2XX )
-
#define DIO2_IOPORT GPIOA
-
#define DIO2_PIN GPIO_Pin_2
-
#else
-
#define DIO2_IOPORT GPIOA
-
#define DIO2_PIN GPIO_PIN_3
-
#endif
-
-
#if defined( STM32F4XX ) || defined( STM32F2XX )
-
#define DIO3_IOPORT
-
#define DIO3_PIN RF_DIO3_PIN
-
#else
-
#define DIO3_IOPORT GPIOA
-
#define DIO3_PIN GPIO_PIN_2
-
#endif
-
void SX1276WriteBuffer( uint8_t addr, uint8_t *buffer, uint8_t size )
-
{
-
uint8_t i;
-
-
//NSS = 0;
-
HAL_GPIO_WritePin( NSS_IOPORT, NSS_PIN, GPIO_PIN_RESET );//SPI片选引脚NSS拉低,SPI被选中
-
-
-
for( i = 0; i < size; i++ )
-
{
-
SpiInOut( buffer[i] );
-
}
-
-
//NSS = 1;
-
HAL_GPIO_WritePin( NSS_IOPORT, NSS_PIN, GPIO_PIN_SET );//SPI片选引脚NSS拉高,SPI不工作
-
}
-
-
void SX1276ReadBuffer( uint8_t addr, uint8_t *buffer, uint8_t size )
-
{
-
uint8_t i;
-
-
//NSS = 0;
-
HAL_GPIO_WritePin( NSS_IOPORT, NSS_PIN, GPIO_PIN_RESET );
-
-
-
-
for( i = 0; i < size; i++ )
-
{
-
buffer[i] = SpiInOut( 0 );
-
}
-
-
//NSS = 1;
-
HAL_GPIO_WritePin( NSS_IOPORT, NSS_PIN, GPIO_PIN_SET );
-
}
-
-
void SX1276Write( uint8_t addr, uint8_t data )
-
{
-
SX1276WriteBuffer( addr, &data, 1 );
-
}
-
-
void SX1276Read( uint8_t addr, uint8_t *data )
-
{
-
SX1276ReadBuffer( addr, data, 1 );
-
}
-
-
void SX1276WriteFifo( uint8_t *buffer, uint8_t size )
-
{
-
SX1276WriteBuffer( 0, buffer, size );/* 在连续读写操作模式时, 寄存器会自动加“1” ,
-
-
-
}
-
-
void SX1276ReadFifo( uint8_t *buffer, uint8_t size )
-
{
-
SX1276ReadBuffer( 0, buffer, size ); /*在连续读写操作模式时, 寄存器会自动加“1” ,
-
-
-
}
-
-
inline uint8_t SX1276ReadDio0( void )
-
{
-
return HAL_GPIO_ReadPin( DIO0_IOPORT, DIO0_PIN );//读取DIO0引脚的状态
-
}
-
-
inline uint8_t SX1276ReadDio1( void )
-
{
-
return HAL_GPIO_ReadPin( DIO1_IOPORT, DIO1_PIN );
-
}
-
-
inline uint8_t SX1276ReadDio2( void )
-
{
-
return HAL_GPIO_ReadPin( DIO2_IOPORT, DIO2_PIN );
-
}