STM32VL DISCOVERY передача указателя на строку...

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Потрогал лапой паяльник
Сообщения: 360
Зарегистрирован: Чт авг 12, 2010 10:16:32

Сообщение dinets »

передаю в функцию указатель на строку для получения результатов работы
если идти отладтчиком то всё работает данные записываються в строку
если отпустить и в функцию не входить, результатов нет
Keil uvision 4

переменная

Код: Выделить всё

	char out[20];
вызов

Код: Выделить всё


ReadS50_16(n,out);
тело функции

Код: Выделить всё

char ReadS50_16(char addr, char *out2)
{
	char buf[20];
	char crc[2];
	char tmp;
	int n;
	
buf[0]=0x30;
	
buf[1]=addr;
	
	
CRCcalc(buf,crc,2);	
buf[2+0]=crc[0];
buf[2+1]=crc[1];
	///////////////////////////////////////
WriteByte(CommandReg,PCD_IDLE);
	WriteByte(FIFOLevelReg,0x80);
	
WriteFIFO(buf,4);

tmp=ReadByte(FIFOLevelReg );
WriteByte(CommandReg,PCD_TRANSCEIVE  );

tmp=ReadByte(BitFramingReg ); //bit 1
WriteByte(BitFramingReg ,0x80);

	  for ( n=2000; n!=0; n--);
		tmp=ReadByte(FIFOLevelReg );
ReadFIFO(out2,tmp);
WriteByte(BitFramingReg ,0x00);
return tmp;

}
код той функции что данные набивает масив ( с её вызовом проблем нет)

Код: Выделить всё

	void		ReadFIFO(char *data, int count)
{

 int n;
char tmp;
	 	 	NSS_strob();
   ////////////////////////////////
	
   /////////////////////////////////
	if(count==0){ return;}
	 	tmp =	 (FIFODataReg<<1)|(0x80);
   SPI1->DR = tmp;
   while (!(SPI1->SR & SPI_SR_RXNE));    //îæèäàíèå îêîí÷àíèÿ ïåðåäà÷è   
  tmp=SPI1->DR;
	
	if (count>1){
		  for(n=0;n<count-1;n++)
	{				  
		tmp =	 (FIFODataReg<<1)|(0x80);
   SPI1->DR = tmp;
   while (!(SPI1->SR & SPI_SR_RXNE));    //îæèäàíèå îêîí÷àíèÿ ïåðåäà÷è   
  data[n]=SPI1->DR;
		
		   	
 }	}
	   		   SPI1->DR = 0x00;
    while (!(SPI1->SR & SPI_SR_RXNE));     //îæèäàíèå îêîí÷àíèÿ ïåðåäà÷è 
	//
			data[count-1]=SPI1->DR;
	
			 	NSS_strob();
		   //

}
Реклама
Потрогал лапой паяльник
Сообщения: 360
Зарегистрирован: Чт авг 12, 2010 10:16:32

Сообщение dinets »

извините ложная тревога всё дело в таймаутах.....!!!!
Реклама
Ответить

Вернуться в «ARM»