/***************************************
* FILENAME: rn8209.c
* PURPOSE: RN8209 Metering Chip Driver
* COPYRIGHT: (c) 2019-2020 by e-Design Co., Ltd.
* DATE: 2020-06-11
* VERSION: 1.0
***************************************/
#include "rn8209.h"
// 定义一些宏,用于控制芯片的引脚操作
#define PinWrite_RN8209CS1(x) (x ? (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET)) : (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET)))
#define PinMode_MISO2(x) (x ? (GPIOB->MODER |= GPIO_MODER_MODER14_0) : (GPIOB->MODER &= ~GPIO_MODER_MODER14_0))
#define PinPullUp_MISO2(x) (x ? (GPIOB->PUPDR |= GPIO_PUPDR_PUPDR14_0) : (GPIOB->PUPDR &= ~GPIO_PUPDR_PUPDR14_0))
#define PinWrite_MISO2(x) (x ? (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET)) : (HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET)))
#define PinRead_MISO2() (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_14))
// 向RN8209芯片写入一个字节的数据
static void fnSpi2_WriteByte(u8 Dat)
{
HAL_SPI_Transmit(&hspi2, &Dat, 1, 1000);
}
// 从RN8209芯片读取一个字节的数据
static u8 fnSpi2_ReadByte(void)
{
u8 Dat;
HAL_SPI_Receive(&hspi2, &Dat, 1, 1000);
return Dat;
}
// 向RN8209芯片写入数据
void fnRn8209_Write(u16 Dst, u8 *Src, u16 DatLen, u16 Repeat)
{
u16 i;
PinMode_MISO2(0); // 设置MISO引脚为输出模式
PinPullUp_MISO2(0)
文章来源地址https://www.toymoban.com/news/detail-822388.html
文章来源:https://www.toymoban.com/news/detail-822388.html
到了这里,关于RN8209 RN8302 spi驱动和校表程序STM32的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!