• 大小: 21KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: 其他
  • 标签: rn8209  spi  hal  freeRTOS  

资源简介

freeRTOS,hal库,stm32f4,硬件SPI和模拟spi方式,与通信rn8209,实际运用过。

资源截图

代码片段和文件信息

/*********************************************************************************
File info   :               rn8209d.c
Mark        :
*********************************************************************************/
/********************************************************************************
                            Head files
*********************************************************************************/
#include “data.h“
#include “type.h“
#include “time.h“
#include “math.h“
#include “stdlib.h“
#include “stdio.h“
#include “string.h“
#include “rn8209d_reg.h“
#include “cal.h“
#include “rn8209.h“
#include “debug.h“
#include “bcd.h“
//#include “freq_com.h“
#include “control.h“
//===============================================================================
//===============================================================================
extern SPI_HandleTypeDef hspi2;

//#define NOP()       {int i; for (i = 0; i < 5; i++);}
//#define Delay2us()  {int i; for (i = 0; i < 50; i++);}
#define delay_us(x) {int i; for (i = 0; i < x; i++);}

#define RN8209_CS(x)        HAL_GPIO_WritePin(SPI2_NSS_GPIO_Port SPI2_NSS_Pin x)//PB12
#define RN8209_RST(x)       HAL_GPIO_WritePin(RN8302B_RESET_GPIO_Port RN8302B_RESET_Pin x)//PC0
//#define RN8209_CLK(x)       HAL_GPIO_WritePin(GPIOB GPIO_PIN_9/*10*/ x)//PB9//PB10
//#define RN8209_MOSI(x)      HAL_GPIO_WritePin(GPIOC GPIO_PIN_14/*3*/ x)//P14//PC3

#define phase_A  0
#define phase_B  1
//===============================================================================

//===============================================================================
//typedef enum {ERROR = 0  SUCCESS = !ERROR} ErrorStatus;
//===============================================================================

//===============================================================================
read_from_rn8209_type           rn8209;
//calibrate_type       calibrate;
//默认换算系数
#define rn8209_Cst_Kia   41938
#define rn8209_Cst_Kib  44529
#define rn8209_Cst_Ku  8711

static rt_data_type out_data;
rt_data_type rtdata;

U64 VoltPowerFactorOutputCurrentFreqF_PowerN_PowerS_PowerAngleF_EnergyN_Energy;
//===============================================================================
rt_data_type *get_tn_rtdata_ptr( int tn )
{
    return &out_data;
}
double acos(double x);

/* SPI2 init function */
void MX_SPI2_rn8209(void)
{
  if (HAL_SPI_DeInit(&hspi2) != HAL_OK)
  {
    _Error_Handler(__FILE__ __LINE__);
  }
  hspi2.Instance = SPI2;
  hspi2.Init.Mode = SPI_MODE_MASTER;
  hspi2.Init.Direction = SPI_DIRECTION_2LINES;//
  hspi2.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi2.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi2.Init.CLKPhase = SPI_PHASE_2EDGE;//
  hspi2.Init.NSS = SPI_NSS_SOFT;
  hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;//
  hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi2.Init.TIMode = SPI_TIMODE_DISABLE;
  hspi2.Init.CRCCalcu

评论

共有 条评论