你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用F3系列的STM32芯片读取TDC_GP22的寄存器

[复制链接]
xiaolingoei 提问时间:2018-8-14 19:52 /
代码在附件中。
用STM32读取的TDC_GP22的结果寄存器,但是,SPI通信读取到的返回值一直是0。整个板子供电正常,无任何硬件短路断路问题,已经检验SPI通信,SPI模块没有问题,外接了2路脉冲信号源做测试。不知道有没有人,用过这款芯片?已经挣扎数个月,请大神指教。



GP22_main_AN034.zip

下载

6.91 KB, 下载次数: 76, 下载积分: ST金币 -1

GP22主函数

收藏 评论2 发布时间:2018-8-14 19:52

举报

2个回答
嵌入式亮 回答时间:2018-11-28 15:40:15
你好,我在调试GP21,SPI通信测试一直通不过。目前我只初始化了IO口,复位,测试(给寄存器1写入数据、写入操作码0xb5,读取8位数据)

#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;
}

可以帮我分析以下问题在哪吗
TLLED 回答时间:2018-11-28 15:50:52
使用这个芯片测量时间,使用1通道还是2通道
xudongqiang 回答时间:2021-3-5 16:07:21
你好 是否有联系方式 有几个关于GP21的问题想问下

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版