|
查看: 963|回复: 2

[Others] 8251的bls_ll_requestConnBrxEventDisable()返回值经常小于3

[复制链接]

2

主题

0

回帖

12

积分

英勇黄铜

积分
12
发表于 2026-3-11 19:11:02 | 显示全部楼层 |阅读模式 来自 广东深圳
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: TLSR8251F512ET48
驱动SDK版本: tc_platform_sdk-V3.1.0

_attribute_ram_code_sec_noinline_ void put_zerocode(volatile u8* buffer,u32 size)
{
       
        if(bls_ll_requestConnBrxEventDisable()>3)// 5 申请是否可以关闭接收事件
        {
                bls_ll_disableConnBrxEvent();//关闭接受事件
                irq_disable();//关闭中断
                int j;
               

                for(j=0;j<size;j++)
                {
                        //CLOCK_DLY_10_CYC;
                        CLOCK_DLY_8_CYC;
                        //CLOCK_DLY_4_CYC;
                        reg_gpio_out(GPIO_PC4)=buffer[j];
                }


                for(j=0;j<640;j++)//大于200us的低电平
                {
                        CLOCK_DLY_10_CYC;
                        CLOCK_DLY_4_CYC;
                        //reg_gpio_out(GPIO_PC2)=0x00;
                        DOUT1_H;
                }
                irq_enable();//打开中断
                bls_ll_restoreConnBrxEvent();//恢复接收事件
        }

       
}

这个函数是在主循环执行的。因为是定时100ms去执行,因为要判断bls_ll_requestConnBrxEventDisable()的返回值,就导致有时候有好几秒都不会运行下面那个io操作的程序。
现在有个问题:我这个io操作是不能开中断里。这个bls_ll_requestConnBrxEventDisable()的返回值,是不是一定要判断?还有就是有什么方法可以避开这个判断吗?

1

主题

36

回帖

123

积分

版主

积分
123
发表于 2026-8-7 16:35:06 | 显示全部楼层 来自 上海
驱动tc_platform_sdk里面没有这个函数bls_ll_requestConnBrxEventDisable的,这是你自己实现的一个函数吗?

58

主题

87

回帖

368

积分

流光翡翠

积分
368
发表于 昨天 23:11 | 显示全部楼层 来自 中国
很好的帖子!感谢分享,受益匪浅。[日期]

本版积分规则

关注公众号
隐私政策|Telink forum

相关侵权、举报、投诉及建议等,请发 E-mail:forum@telink-semi.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|沪ICP备17008231号-1 |沪公网安备31011502403548号

在本版发帖返回顶部