51uwb.cn

 找回密码
 立即注册
查看: 3253|回复: 8
打印 上一主题 下一主题

关于Tag_Measure_Dis无法测距的问题

[复制链接]

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
跳转到指定楼层
楼主
发表于 2021-8-13 11:12:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我将原来的程序中的硬件spi修改成软件spi,导致一直在Tag_Measure_Dis中无法跳出。
希望能提供帮助
以下是软件spi的代码:

#define SPI_SCK_PIN                     GPIO_Pin_13     //NEED TO CHANGE
#define SPI_SCK_GPIO_PORT               GPIOB          //NEED TO CHANGE
#define SPI_MOSI_PIN                    GPIO_Pin_15     //NEED TO CHANGE
#define SPI_MOSI_GPIO_PORT              GPIOB          //NEED TO CHANGE
#define SPI_MISO_PIN                    GPIO_Pin_14     //NEED TO CHANGE
#define SPI_MISO_GPIO_PORT              GPIOB          //NEED TO CHANGE
#define SPI_NSS_PIN                     GPIO_Pin_3     //NEED TO CHANGE
#define SPI_NSS_GPIO_PORT               GPIOC          //NEED TO CHANGE


//#define SPI_SCK_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOA_CLK_ENABLE()
//#define SPI_MISO_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOA_CLK_ENABLE()
//#define SPI_MOSI_GPIO_CLK_ENABLE()      __HAL_RCC_GPIOA_CLK_ENABLE()
//#define SPI_NSS_GPIO_CLK_ENABLE()       __HAL_RCC_GPIOD_CLK_ENABLE()


#define MOSI_H  GPIO_SetBits(SPI_MOSI_GPIO_PORT, SPI_MOSI_PIN)
#define MOSI_L  GPIO_ResetBits(SPI_MOSI_GPIO_PORT, SPI_MOSI_PIN)
#define SCK_H   GPIO_SetBits(SPI_SCK_GPIO_PORT, SPI_SCK_PIN)  
#define SCK_L   GPIO_ResetBits(SPI_SCK_GPIO_PORT, SPI_SCK_PIN)  
#define MISO    GPIO_ReadInputDataBit(SPI_MISO_GPIO_PORT, SPI_MISO_PIN)
#define NSS_H   GPIO_SetBits(SPI_NSS_GPIO_PORT, SPI_NSS_PIN)  
#define NSS_L   GPIO_ResetBits(SPI_NSS_GPIO_PORT, SPI_NSS_PIN)  


  uint8_t t;
        void delay(uint8_t t)
        {
          uint8_t i;
                for(i=1;i<t;i++)
                ;
        }

void SOFTSPI_Init(void)
{  


  /*##-2- Configure peripheral GPIO #######################*/
  /* SPI SCK GPIO pin configuration  */
        GPIO_InitTypeDef GPIO_InitStruct;

        /*##-1- Enable peripherals and GPIO Clocks #########################*/
  /* Enable GPIO TX/RX clock */
    RCC_APB2PeriphClockCmd(
        RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
        RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
        RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,
        ENABLE);

       
        //sck
                GPIO_InitStruct.GPIO_Pin = SPI_SCK_PIN;
                GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
                GPIO_Init(SPI_SCK_GPIO_PORT, &GPIO_InitStruct);
       
  //cs
                GPIO_InitStruct.GPIO_Pin = SPI_NSS_PIN;
                GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
                GPIO_Init(SPI_NSS_GPIO_PORT, &GPIO_InitStruct);
                NSS_H;
  //mo
                GPIO_InitStruct.GPIO_Pin = SPI_MOSI_PIN;
                GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
                GPIO_Init(SPI_MOSI_GPIO_PORT, &GPIO_InitStruct);
               
  //mi
                GPIO_InitStruct.GPIO_Pin = SPI_MISO_PIN;
                GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
                GPIO_Init(SPI_MISO_GPIO_PORT, &GPIO_InitStruct);

}

/* CPOL = 0, CPHA = 0, MSB first */
uint8_t SOFT_SPI_RW_MODE0( uint8_t write_dat )
{
    uint8_t i, read_dat;
    for( i = 0; i < 8; i++ )
    {
        if( write_dat & 0x80 )
            MOSI_H;  
        else                    
            MOSI_L;  
        write_dat <<= 1;


        read_dat <<= 1;  
        if( MISO )
            read_dat++;
                                SCK_H;
        delay(t);       
        SCK_L;
        delay(t);       
    }
       
    return read_dat;
}







回复

使用道具 举报

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
沙发
 楼主| 发表于 2021-8-13 11:18:06 | 只看该作者
可否提供一些关于Tag_Measure_Dis的讲解
回复

使用道具 举报

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
板凳
 楼主| 发表于 2021-8-13 11:38:40 | 只看该作者
在没有基站的时候可以正常运行,基站一上电,标签就会进入Tag_Measure_Dis,无法跳出。
回复

使用道具 举报

35

主题

965

帖子

4052

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4052
地板
发表于 2021-8-13 19:16:23 | 只看该作者
毕业设计 发表于 2021-8-13 11:38
在没有基站的时候可以正常运行,基站一上电,标签就会进入Tag_Measure_Dis,无法跳出。

从你这句描述,检查下中断,是不是和uwb使用的中断有什么冲突了?
回复

使用道具 举报

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
5#
 楼主| 发表于 2021-8-16 17:50:45 | 只看该作者
他是不是只能用硬件spi来运行,软件spi达不到他的速率要求
回复

使用道具 举报

35

主题

965

帖子

4052

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4052
6#
发表于 2021-8-17 07:13:45 | 只看该作者
毕业设计 发表于 2021-8-16 17:50
他是不是只能用硬件spi来运行,软件spi达不到他的速率要求

你可以测试下软件spi的速率,之前一直也没有用过软件spi
你为何要用软件spi,硬件管脚分配有问题 吗?
回复

使用道具 举报

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
7#
 楼主| 发表于 2021-8-17 14:32:23 | 只看该作者
是的。引脚放不下了
回复

使用道具 举报

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
8#
 楼主| 发表于 2021-8-17 14:45:39 | 只看该作者
基站的spi速率可以修改嘛,就是便签在读取id时的拉低拉高那个。
谢谢。
回复

使用道具 举报

8

主题

22

帖子

84

积分

注册会员

Rank: 2

积分
84
9#
 楼主| 发表于 2021-8-17 14:50:59 | 只看该作者
找到了,眼睛不太好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-5-3 14:28 , Processed in 0.016238 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表