OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4728|回复: 4

菜鸟求助,不知道是哪个模块的问题,执行红色IF语句向上位机发信息,之后就死机,搞了好几天了,也不知道问题出在哪!有程序附件。

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-6-1
在线时间
0 小时
发表于 2013-10-4 22:10:24 | 显示全部楼层 |阅读模式
用到2块MINI板
*************************************************************************************
24l01.c中的接收发送地址有改动
const u8 TX_ADDRESS[TX_ADR_WIDTH]={0x34,0x43,0x10,0x10,0x01}; 
const u8 RX_ADDRESS[RX_ADR_WIDTH]={0x35,0x44,0x11,0x11,0x02}; 
*************************************************************************************


test.c如下:

#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h" 
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"   
#include "rtc.h"
#include "wkup.h"
#include "adc.h"
#include "dma.h"
#include "24cxx.h"
#include "flash.h"
#include "touch.h"
#include "24l01.h"
#include "ff.h"
#include "mmc_sd.h"
#include "diskio.h"
#include "malloc.h"
#include "exfuns.h"
#include "string.h"
//Mini STM32开发板范例代码19
//无线通信实验
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
  
u8 chars[19];
u8 chars1[21] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '};
u8 zhiling[11];
u8 g = 0;
//u8 sp = 0;
u8 v =0;
u32 num = 0;
//数字转化为字符串
void convert (char *a,u32 n)
{
 int count=1;
 int i,j;
 int temp=n;
 while((temp=temp/10) !=0)
 {
  count++;
 }
 for(i=count;i>=1;i--)
 {
  temp=n;
     for(j=1;j<i;j++)
  {
   temp=temp/10;   
  }
  *a=temp%10+'0';
        a++;
 }
}
void jiema(u8 zl[64])
{
num = zl[8] - 0x30;//低位
num = (zl[7]- 0x30)*10 + num;
num = (zl[6]- 0x30)*100 + num;
num = (zl[5]- 0x30)*1000 + num;
num = (zl[4]- 0x30)*10000 + num;
num = (zl[3]- 0x30)*100000 + num;
num = (zl[2]- 0x30)*1000000 + num;
num = (zl[1]- 0x30)*10000000 + num;//高位
}
void zhuan(CHAR y[64],u8 z[64])
{ u8 i;
for(i = 10;i < 52;i++)
{
y[i-10] = z;
}
}
void zhuan1(u8 y[19],u8 z[64])
{ u8 i;
for(i = 10;i < 17;i++)
{
y[i-10] = z;
}
y[18] = '\0';
}

             
int main(void)
{
//typedef unsigned char BYTE;
u32 t=0;  
u8 tmp_buf[64];
u8 len,i;
u32 sp=0,sp1=0;
CHAR buffer[64];
CHAR p[64];
//u8 l,m,n;
  Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,38400); //串口1初始化      
KEY_Init(); //按键初始化
LED_Init();         //LED初始化
exfuns_init();     //为fatfs相关变量申请内存

  mem_init();             //初始化内部内存池
exfuns_init(); //为fatfs相关变量申请内存  
    f_mount(0,fs[0]); //挂载SD卡 
  f_mount(1,fs[1]);     //挂载FLASH.



NRF24L01_Init();    //初始化NRF24L01 
 
while(NRF24L01_Check())//检测不到24L01
{
delay_ms(500);
delay_ms(500);
LED0=!LED0;//DS0闪烁
}
RX_Mode();
while(1)
{
if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,则显示出来.
{
tmp_buf[63]='\0';//加入字符串结束符
printf("%s",tmp_buf);//给上位机发信号 
}
else
{
if(USART_RX_STA&0x80)
len=USART_RX_STA&0x3f;//得到此次接收到的数据长度
for(t=0;t<len;t++)
{
tmp_buf[t] = USART_RX_BUF[t];
USART_RX_STA=0;
TX_Mode();
while(NRF24L01_TxPacket(tmp_buf) ==  TX_OK)
{  
RX_Mode();
//-------------------------------------------------------------------------------
if(tmp_buf[0] == '['&&tmp_buf[9] == ']')//如把此if语句注释掉,程序其他功能可以正常
{
jiema(tmp_buf);
if(num == 2)
{ zhuan(p,tmp_buf);
p[53]='\0';//加入字符串结束符
//printf("%s",p);
f_mkdir ("0://test1"); //0:SD卡,卷标为0
f_opendir(&dir,(const TCHAR*)"0://test1");
f_open (ftemp,"0://test1//testy.txt",FA_OPEN_EXISTING | FA_READ);  //读文件
sp1 = 102*sp;
f_lseek (ftemp , sp1);
f_read(ftemp,buffer,11,&br);
//printf("%s",buffer);
//buffer[11] ='\0';
//p[11]='\0';
while(strcmp(buffer,p))
{
sp++;
sp1 = 102*sp;
f_lseek (ftemp , sp1);
f_read(ftemp,buffer,11,&br);
}
buffer[9] = '\0';
f_lseek (ftemp , sp1 + 91);
f_read(ftemp,buffer,9,&br);
//printf("%s",buffer);-------上位机发[00000002]13017000047+回车 此句可以返回1330^^^^^到上位机(串口调试助手) 之后就一直死机的状态
sp = 0;
f_close(ftemp);
}

}
//------------------------------------------------------------------------------------------------------
 
for(i = 0;i < 62;i++)
{
tmp_buf = ' ';
USART_RX_BUF = ' ';
}
}
}
delay_us(1);   
t++;
if(t==100000)//大约1s钟改变一次状态
{
t=0;
LED1=!LED1;

}
}
     


 }
 








testy.txt

1.79 KB, 下载次数: 43

PC端_FATFS_20131002.rar

672.95 KB, 下载次数: 64

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-4 22:33:37 | 显示全部楼层
仿真跟踪代码,看看死在哪里...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-6-1
在线时间
0 小时
 楼主| 发表于 2013-10-4 22:40:41 | 显示全部楼层
原子哥......我从来都没用过那仿真的功能。
我研究研究吧!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-5 09:56:39 | 显示全部楼层
回复【3楼】tzjz1221:
---------------------------------
可以看看我们教程,学习下仿真器使用,非常有用的啊。必须学会。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-6-1
在线时间
0 小时
 楼主| 发表于 2013-10-5 10:01:38 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我没有仿真器,╮(╯▽╰)╭哎,正准备买呢。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-12 11:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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