Comm sérielle

Salut…

Comment va…

Je suis pas mal en rouillé en C… J’utilisais à l’époque Lab/Windows CVI de NI pour développer… et la j’ai un regain d’énergie pour la DEV depuis que j’ai rencontre Arduino… voici mon bout de code… assez simple simple une lecture sur le part série…

void main()
{

	int	serialError;
	int	PortIsOpen = 0;
	int 	BytesRead;
	int 	InputQueueSize;
	int 	i =0;
	
	double	AnalogValueDouble;		
	
	char	ReadDataBuffer[100];

	
	printf("Test de communication avec mon ARDUINO\n\n");
	
	serialError = OpenComConfig (4, "COM4", 115200, 0, 8, 1, 100, 28);   
	if(serialError == 0)
	{
		printf("Le port de comm est ouvert\n\n");				
		PortIsOpen = 1;
	}
	else
	    printf("Pas capable d'ouvrir le port de Comm\n");  
	
	
	printf("Appuyer sur une touche pour terminer\n");
	FlushInQ(4);
	while(!KeyHit() )
	{	
		InputQueueSize = GetInQLen (4);
		if(InputQueueSize >100)
		{
			FlushInQ(4);
			InputQueueSize = GetInQLen (4);
		}		
 
		BytesRead = ComRdTerm (4, ReadDataBuffer, InputQueueSize, 10); 
	
	      	if(BytesRead != 0)		 
		{
			AnalogValueDouble = atof(ReadDataBuffer);  
			printf("Valeur lue:  %lf  La taille de la trame de comm %ld\n", AnalogValueDouble, InputQueueSize);   
	   	}   
	}
	
	if(PortIsOpen == 0)
		CloseCom(4);	  
}

sur mon output window… j’obtiens des valeurs pas d’allure… assez souvant

Devrait avoir des valeur en 0 et 5 volts… 6 décimals… mais assez souvant des nombre immense… et dans le serial monitor d’arduino tout est ok

Si vous pouvez m’aider j’appé<récierais…

A+

Steph

Edit de Jean-François : les bouts de code doivent être mis entre les balises “[code ]… [/ code]” c’est plus lisible.

t’as le prototype de la fonction ComRdTerm ?
J’arrive pas à la trouver sur le net :s

Salut,

Quelle bibliothèque utilises-tu pour accéder au port série ? Je ne reconnais pas l'API Windows dans ton extrait de code source :|

http://zone.ni.com/reference/en-XX/help/370051H-01/cvi/cvicomrdterm/