打印
[STM32]

程序在线仿真成功,烧录运行却失败了

[复制链接]
1603|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
泡沫馨馨|  楼主 | 2014-8-26 14:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 泡沫馨馨 于 2014-8-26 14:53 编辑

简单的检测NRF24L01连接是否成功的程序,NRF24L01.c文件中的函数直接从例程搬过来的,设置为如果连接失败的话,灯闪烁,连接成功则不闪烁
u8 NRF24L01_Check(void)
{
        u8 buf[5]={0xA5,0xA5,0xA5,0xA5,0xA5};
        u8 i;
        NRF24L01_Write_Buf(WRITE_REG_NRF+TX_ADDR ,buf,5);
        NRF24L01_Read_Buf(TX_ADDR,buf,5);  
        for(i=0;i<5;i++)
        {
                if(buf[i]!=0xA5)
                        break;       
        }               
        if(i!=5)
                return 1;        //失败
        else
                return 0;         //成功
}
while(NRF24L01_Check())
        {
                LED_G=0;  
                Delay_1ms(50);
                LED_G=1;
                Delay_1ms(50);
        }
在线调试时,单步运行可以看到程序在上面的for循环中来回五次,返回值为0,没有进入while中灯闪烁的函数
但是当通过jlink把程序烧录到板子里运行的时候,灯却闪烁了,
请问这是为什么呢?

相关帖子

沙发
junqishang| | 2014-8-27 00:04 | 只看该作者
单步运行可以,直接运行出问题这种情况,我也遇到过很多次。都是程序的问题。
你的这个,SPI速度设置为多少? NRF24L01的最大SPI时钟为10Mhz,不要超了。

使用特权

评论回复
板凳
coody| | 2014-8-27 12:02 | 只看该作者
既然这样,那STM32根本就不能用,换别的ARM吧

使用特权

评论回复
地板
bluesky001| | 2014-9-1 12:11 | 只看该作者
可能时序问题。比如上电延时,执行过程中的延时等待等。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

24

帖子

1

粉丝