搜索
bottom↓
回复: 6

关于小笨蛋四轴程序问题

[复制链接]

出0入0汤圆

发表于 2015-7-25 10:45:31 | 显示全部楼层 |阅读模式
我自己仿照小笨蛋wifi四轴做了一个四轴,wifi模块用的是88w8686。程序输出的结果为:
\ | /
- RT -     Thread Operating System
/ | \     1.1.0 build Jul 25 2015
2006 - 2012 Copyright by rt-thread team
FW download Phase1 failed

调试过程中一直卡在
循环中    do {
                for(i=0;i<1000;i++);
                gspi_read_reg(SCRATCH_1_REG, &len);
    } while (!len);


以下是完整函数
int sbi_download_wlan_fw_image( const u8 * firmware,int firmwarelen)
{
    int ret,i;
    u16 len;
    u32 cnt = 0;
       
    do {
                for(i=0;i<1000;i++);
                gspi_read_reg(SCRATCH_1_REG, &len);
    } while (!len);
   

    for (;;) {
        if (wait_for_hostintstatus(RT_NULL)) {
            WlanDebug(WlanErr,"FW download Phase2 failed\n");
            return WLAN_STATUS_FAILURE;
        }

        gspi_read_reg(SCRATCH_1_REG, &len);

        if (!len) {
            break;
        }

        if (len & 1) {
            WlanDebug(WlanMsg,"CRC Error\n");
            len &= ~1;
        } else {
            WlanDebug(WlanMsg,".");
        }

        gspi_write_data_direct((u8 *) (firmware + cnt), CMD_RDWRPORT_REG,
                               (len / 2) + 1);
        gspi_write_reg(HOST_INT_STATUS_REG, 0x0000);
        gspi_write_reg(CARD_INT_CAUSE_REG, CIC_CmdDnLdOvr);
        cnt += len;
    }
    ret = WLAN_STATUS_SUCCESS;
    return ret;
}



wifi源码如下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2015-7-25 10:54:07 | 显示全部楼层
没人来吗

出0入0汤圆

发表于 2015-7-25 10:59:51 | 显示全部楼层
是不是一直读不到数据,所以就卡在那了?

出0入0汤圆

 楼主| 发表于 2015-7-25 11:11:54 | 显示全部楼层
读到的值,为0

int gspi_read_reg(u16 reg, u16 * val)
{
    u32 reg_val = 0;
        WifiSpiReadReg(reg, &reg_val);
        *val = (u16)reg_val;
    return 0;
}
void WifiSpiReadReg(u16 reg, u32* pval)
{

        u16 temp_l = 0;
        u32 temp_h = 0;
        SPI_ClrCS(WIFI_SPI);
        SPI_WriteByte(WIFI_SPI, reg);
       
//        if_gspi_ops->Delay_nUS(1);       
        temp_l = SPI_ReadByte(WIFI_SPI, WIFI_DUMMY_DATA);        //读低位
        temp_h = SPI_ReadByte(WIFI_SPI, WIFI_DUMMY_DATA);        //读高位
        temp_h <<= 16;
        temp_h |= temp_l;
        SPI_SetCS(WIFI_SPI);
       
        *pval = temp_h;
        //rt_kprintf("\nSpiReadReg:0X%8X\n\n",temp_h);

}

出0入0汤圆

 楼主| 发表于 2015-7-25 11:12:53 | 显示全部楼层
lans0625 发表于 2015-7-25 10:59
是不是一直读不到数据,所以就卡在那了?

读到的值,为0

int gspi_read_reg(u16 reg, u16 * val)
{
    u32 reg_val = 0;
        WifiSpiReadReg(reg, &reg_val);
        *val = (u16)reg_val;
    return 0;
}
void WifiSpiReadReg(u16 reg, u32* pval)
{

        u16 temp_l = 0;
        u32 temp_h = 0;
        SPI_ClrCS(WIFI_SPI);
        SPI_WriteByte(WIFI_SPI, reg);
        
//        if_gspi_ops->Delay_nUS(1);        
        temp_l = SPI_ReadByte(WIFI_SPI, WIFI_DUMMY_DATA);        //读低位
        temp_h = SPI_ReadByte(WIFI_SPI, WIFI_DUMMY_DATA);        //读高位
        temp_h <<= 16;
        temp_h |= temp_l;
        SPI_SetCS(WIFI_SPI);
        
        *pval = temp_h;
        //rt_kprintf("\nSpiReadReg:0X%8X\n\n",temp_h);

}
读到的temp_h为0

出0入0汤圆

 楼主| 发表于 2015-7-25 11:21:17 | 显示全部楼层
我看到错误了,真是悲剧。for循环后面有一个分号,。。。。

出0入0汤圆

 楼主| 发表于 2015-7-25 15:34:24 | 显示全部楼层
已经崩溃了,被这个wifi模块 坑死了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 05:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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