51uwb.cn

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

8M板子,测距初始化完成,接收数据的时候貌似是堆栈溢出,求解

[复制链接]

1

主题

6

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2019-4-26 09:26:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/* Clear reception timeout to start next ranging process. */
        dwt_setrxtimeout(0);
                 printf("清除接收超时以开始下一个测距过程 \r\n");
        /* Activate reception immediately. */
        dwt_rxenable(0);
                printf("接收使能 \r\n");
        /* Poll for reception of a frame or error/timeout. See NOTE 7 below. */
        while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))
        { };

        if (status_reg & SYS_STATUS_RXFCG)
        {
            /* Clear good RX frame event in the DW1000 status register. */
             dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);

            /* A frame has been received, read it into the local buffer. */
            frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFL_MASK_1023;
            if (frame_len <= RX_BUFFER_LEN)
            {
                dwt_readrxdata(rx_buffer, frame_len, 0);
            }
            /* Check that the frame is a poll sent by "DS TWR initiator" example.
             * As the sequence number field of the frame is not relevant, it is cleared to simplify the validation of the frame. */
                                printf("判断是否是测距发起者 \r\n");
            if(rx_buffer[ALL_MSG_SN_IDX]%ANCHOR_MAX_NUM != ANCHOR_IND)
                continue;



回复

使用道具 举报

1

主题

6

帖子

21

积分

新手上路

Rank: 1

积分
21
沙发
 楼主| 发表于 2019-4-26 09:26:27 | 只看该作者
死在了红色代码。。。。
回复

使用道具 举报

73

主题

249

帖子

6829

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6829
板凳
发表于 2019-4-26 09:49:27 | 只看该作者
米兰卡 发表于 2019-4-26 09:26
死在了红色代码。。。。

把里面printf 去掉,用LED观察现象
回复

使用道具 举报

1

主题

6

帖子

21

积分

新手上路

Rank: 1

积分
21
地板
 楼主| 发表于 2019-4-26 09:59:46 | 只看该作者
注释掉了。。然后debug 死在了这。。
回复

使用道具 举报

73

主题

249

帖子

6829

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6829
5#
发表于 2019-4-26 10:04:55 | 只看该作者
米兰卡 发表于 2019-4-26 09:59
注释掉了。。然后debug 死在了这。。

你STM32 型号是什么?

你怎么判断死到红色标记的地方? 红色标记的地方?

你的板子有LED嘛? 用LED指示程序跑到的位置,不要用printf

printf 会占用太多时间,导致无线收发数据有问题

回复

使用道具 举报

1

主题

6

帖子

21

积分

新手上路

Rank: 1

积分
21
6#
 楼主| 发表于 2019-4-26 10:11:52 | 只看该作者
C8T6 没焊LED。。。
用的debug,,void decamutexoff(decaIrqStatus_t s)        //在这里放置一个函数,在关键部分结束时重新启用中断
{
        if(s) { //需要检查端口状态,因为我们不能在STM ARM上使用级别敏感中断
                port_EnableEXT_IRQ();
        }
}这个函数之后
return 0 之后就跳到了while 1  硬件故障。。
R14 0xFFFFFFF9
回复

使用道具 举报

1

主题

6

帖子

21

积分

新手上路

Rank: 1

积分
21
7#
 楼主| 发表于 2019-4-26 10:48:08 | 只看该作者
供电问题。。= =
回复

使用道具 举报

1

主题

6

帖子

21

积分

新手上路

Rank: 1

积分
21
8#
 楼主| 发表于 2019-4-26 11:33:57 | 只看该作者
但是又不行了。。。
回复

使用道具 举报

73

主题

249

帖子

6829

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6829
9#
发表于 2019-4-30 16:03:27 | 只看该作者
米兰卡 发表于 2019-4-26 11:33
但是又不行了。。。

这个后期旺旺交流得知结果应该是连线问题

希望下次登陆论坛把最后处理结果方法写一些,多谢!
回复

使用道具 举报

5

主题

24

帖子

72

积分

注册会员

Rank: 2

积分
72
10#
发表于 2019-4-30 21:54:16 | 只看该作者
tuzhuke 发表于 2019-4-30 16:03
这个后期旺旺交流得知结果应该是连线问题

希望下次登陆论坛把最后处理结果方法写一些,多谢!

有一个问题就是供电问题,据说DWM1000启动电流很大,我看坛主都是用的充电宝,充电宝好像瞬间可以提供1A的电流
供电问题也值得大家警惕,据说用什么USB-TTL取点有可能出问题
回复

使用道具 举报

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

本版积分规则

bphero Inc.  

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

Powered by Discuz! X3.3

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

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