N32G43X
前言
本例程主要实现了国民技术N32G43X模拟SPI,主要是做从机读取数据。
提示:以下是本篇文章正文内容,下面案例可供参考
一、模拟SPI
1.宏定义GPIO
代码如下(示例):
#define SCK3_L GPIOB->PBC = GPIO_PIN_3
#define SCK3_H GPIOB->PBSC = GPIO_PIN_3
#define CSN3_L GPIOB->PBC = GPIO_PIN_4
#define CSN3_H GPIOB->PBSC = GPIO_PIN_4
#define MOSI3_L GPIOB->PBC = GPIO_PIN_6
#define MOSI3_H GPIOB->PBSC = GPIO_PIN_6
#define MISO3 (GPIOB->PID & GPIO_PIN_5)
2.初始化GPIO
代码如下(示例):
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//函数名:void SpiInit3(void)
//输入:无
//输出:无
//功能描述:软件SPI初始化
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
void Spi_Sofe_Init3(void)
{
GPIO_InitType GPIO_InitStructure;
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOB, ENABLE);
GPIO_InitStruct(&GPIO_InitStructure);
GPIO_InitStructure.Pin = GPIO_PIN_3 |GPIO_PIN_4|GPIO_PIN_6;
GPIO_InitStructure.GPIO_Current = GPIO_DC_4mA;
GPIO_InitStructure.GPIO_Pull = GPIO_Pull_Up;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure);
GPIO_InitStruct(&GPIO_InitStructure);
GPIO_InitStructure.Pin = GPIO_PIN_5;
GPIO_InitStructure.GPIO_Current = GPIO_DC_4mA;
GPIO_InitStructure.GPIO_Pull = GPIO_Pull_Up;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Input;
GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure);
CSN3_L;
SCK3_L;
CSN3_H;
}
3.读写函数
代码如下(示例):
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//函数名:SpisendByte(INT8U dat)
//输入:
//输出:无
//功能描述:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
u8 SpiTxRxByte3(u8 dat)
{
u8 i,temp;
temp = 0;
SCK3_L;
for(i=0; i<8; i++)
{
if(dat & 0x80)
{
MOSI3_H;
}
else MOSI3_L;
dat <<= 1;
SCK3_H;
delay_us(50);
temp <<= 1;
if(MISO3!=0) temp++;
SCK3_L;
delay_us(50);
}
return temp;
}
4.从机读取数据
代码如下(示例):
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
//函数名:void halSpiReadBurstReg3(u8 addr, u8 *buffer, u8 count)
//输入:
//输出:无
//功能描述:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++/
void halSpiReadBurstReg3(u8 addr, u8 *buffer, u8 count)
{
u8 i;
CSN3_L;
delay_us(50);
while (MISO3!=0);
for (i = 0; i<count; i++)
{
buffer[i] = SpiTxRxByte3(0X55);
}
CSN3_H;
}
该处使用的url网络请求的数据。
二、软件下载
47.N32G43X例程之-模拟SPI
https://download.csdn.net/download/suqingxiao/73790192