你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
GP22_main_AN034.zip
2018-8-14 19:48 上传
点击文件名下载附件
6.91 KB, 下载次数: 76, 下载积分: ST金币 -1
GP22主å½æ°
举报
#include "gp21.h"
void DelayNS(unsigned long dly)
{
unsigned int i;
for(i=0;i<dly;i++);
}
void SPI2_TDC_INIT(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOE_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_12|GPIO_PIN_14;
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
HAL_GPIO_Init(GPIOE,&GPIO_Initure);
GPIO_Initure.Pin=GPIO_PIN_13;
GPIO_Initure.Mode=GPIO_MODE_INPUT; //输入
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
HAL_GPIO_Init(GPIOE,&GPIO_Initure);
}
void TDC_Configuration(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOG_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_11;//GPIO_PIN_9|GPIO_PIN_10|
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
HAL_GPIO_Init(GPIOD,&GPIO_Initure);
GPIO_Initure.Pin=GPIO_PIN_5;//|GPIO_PIN_7
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽输出
GPIO_Initure.Pull=GPIO_PULLUP; //上拉
GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
HAL_GPIO_Init(GPIOG,&GPIO_Initure);
}
void TDC_RESET(void)
{
SET_TDC_RESET();
DelayNS(100);
CLR_TDC_RESET();
DelayNS(100);
SET_TDC_RESET();
DelayNS(100);
}
unsigned char Test_SPI_Communicate(void)
{
int register1 = 0x81ffffff;
unsigned char test_reg=0xb4; //读结果寄存器5,反映寄存器1 的高8 位
unsigned char test_reg0=0x00;
// unsigned char test_reg1=0x81; //读结果寄存器5,反映寄存器1 的高8 位
DelayNS(500);
CLR_TDC_NSS();
DelayNS(5);
for (int i=0;i<32;i++)
{
SET_TDC_SCK();
DelayNS(5);
if (register1&0x80000000)
{
SET_TDC_SI();
}
else
CLR_TDC_SI();
DelayNS(5);
CLR_TDC_SCK();
DelayNS(5);
register1=register1<<1;
}
DelayNS(5);
SET_TDC_NSS();
DelayNS(500);
CLR_TDC_NSS();
DelayNS(5);
for (int i=0;i<8;i++)
{
SET_TDC_SCK();
DelayNS(5);
if (test_reg&0x80)
SET_TDC_SI();
else
CLR_TDC_SI();
DelayNS(5);
CLR_TDC_SCK();
DelayNS(5);
test_reg=test_reg<<1;
}
for(int j=0;j<8;j++)
{
SET_TDC_SCK();
DelayNS(5);
test_reg0=test_reg0<<1;
if (HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_13) ==0)
{
test_reg0 &=0x01;
}
else
{
test_reg0 |=0x01;
}
CLR_TDC_SCK();
DelayNS(5);
}
SET_TDC_NSS();
return test_reg0;
}
可以帮我分析以下问题在哪吗