Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Bluetooth Electronics et envoi de texte
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
Bonjour à tous,
Le petit soft pour allumer 4 LED fonctionne toujours, au lieu des LED, il affiche sur un LCD quel BP est actionné sur le téléphone.
Toujours avec Bluetooth Electronics. (je fais référence à cette discussion)
Ca fait une semaine que je me bats pour envoyer du texte et ça ne fonctionne pas.
Je suis sûr de la transmission du téléphone au PIC vu que pour le soft des BP fonctionne, ce n'est donc pas un souci matériel.
Déjà que l'aide MikroE n'est pas juste ...
Ci-dessous l'exemple de l'aide.
J'ai changé 'OK' par "OK" pour que la compilation fonctionne. (j'ai trouvé tout seul )
Je n'ai pas utilisé la ligne UART_Write_Text
J'ai déclaré une variable output de 255 string, une autre delimiter de 10 string et une autre encore attemps comme byte.
C'est ce que demande la procédure, voir ci-dessous
sub procedure UARTx_Read_Text(dim byref Output as string[255], dim byref Delimiter as string[10], dim Attempts as byte)
Ces 3 lignes de code n'affichent rien sur mon LCD.
J'écoute les Beatles, HELP... d'avance pour votre aide.
Le petit soft pour allumer 4 LED fonctionne toujours, au lieu des LED, il affiche sur un LCD quel BP est actionné sur le téléphone.
Toujours avec Bluetooth Electronics. (je fais référence à cette discussion)
Ca fait une semaine que je me bats pour envoyer du texte et ça ne fonctionne pas.
Je suis sûr de la transmission du téléphone au PIC vu que pour le soft des BP fonctionne, ce n'est donc pas un souci matériel.
Déjà que l'aide MikroE n'est pas juste ...
Ci-dessous l'exemple de l'aide.
Code : Tout sélectionner
Read text until the sequence “OK” is received, and send back what’s been received:
UART1_Init(4800) ' initialize UART module
Delay_ms(100)
while TRUE
if (UART1_Data_Ready() = 1) ' if data is received
UART1_Read_Text(output, 'OK', 10) ' reads text until 'OK' is found
' UART1_Write_Text(output) ' sends back text
end if
wend.
J'ai changé 'OK' par "OK" pour que la compilation fonctionne. (j'ai trouvé tout seul )
Je n'ai pas utilisé la ligne UART_Write_Text
J'ai déclaré une variable output de 255 string, une autre delimiter de 10 string et une autre encore attemps comme byte.
C'est ce que demande la procédure, voir ci-dessous
sub procedure UARTx_Read_Text(dim byref Output as string[255], dim byref Delimiter as string[10], dim Attempts as byte)
Ces 3 lignes de code n'affichent rien sur mon LCD.
J'écoute les Beatles, HELP... d'avance pour votre aide.
Bluetooth Electronics et envoi de texte
Bluetooth Electronics et envoi de texte
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour Gerard , et à tous,
quelle appli android ?
Comment fais-tu pour envoyer ton texte ?
y a -t-il un terminateur comme CR ou CR LF en fin de string ..
texte : blalablaOK ou blalablaOK<CR><LF>
si le texte depasse 10 chars output devrait au moins contenir ces 10 chars.. à condition qu'ils soient bien emis coté appli Android
comment verifies-tu si tu enleves le UART1_Write_Text(ouput); ?
===============================
j'ai fait un test , avec un terminal YAT
proge est en C, mais le principe est le meme
la reponse à l'envoi de la commande peut différer beaucoup
si on envoie le string char par char ou d'une seule traite
le Nb de char 10 , inclus les 2 chars de "OK" !!!
des qu'on arrive au dessus de 10, c'est aleatoire ! on peut meme ne recuperer qu'un seul car ou rien
Buggé la lib ?
Perso je ne l'utilise pas, je prefere de loin , utiliser la gestion via buffer et interrupt sur RX
bien plus fiable ..
par contre ,il vaut Mieux mettre 255 pour recevoir la trame qui se finit par "OK"
"OK" devient la seule condition pour stopper la reception
(14:14:09.808)
(14:14:13.610) 123456789OK envoi
(14:14:13.699) 123456789 retour
(14:14:16.558) 123456789OK envoi
(14:14:16.639) 123456789 retour
(14:14:23.759) 1234567890123OK envoi
(14:14:23.783) 1234567890123 retour
(14:16:47.359) 1234567890123456789012345OK envoi
(14:16:47.394) 1234567890123456789012345 retour
quelle appli android ?
Comment fais-tu pour envoyer ton texte ?
y a -t-il un terminateur comme CR ou CR LF en fin de string ..
texte : blalablaOK ou blalablaOK<CR><LF>
si le texte depasse 10 chars output devrait au moins contenir ces 10 chars.. à condition qu'ils soient bien emis coté appli Android
comment verifies-tu si tu enleves le UART1_Write_Text(ouput); ?
===============================
j'ai fait un test , avec un terminal YAT
proge est en C, mais le principe est le meme
la reponse à l'envoi de la commande peut différer beaucoup
si on envoie le string char par char ou d'une seule traite
le Nb de char 10 , inclus les 2 chars de "OK" !!!
des qu'on arrive au dessus de 10, c'est aleatoire ! on peut meme ne recuperer qu'un seul car ou rien
Buggé la lib ?
Perso je ne l'utilise pas, je prefere de loin , utiliser la gestion via buffer et interrupt sur RX
bien plus fiable ..
par contre ,il vaut Mieux mettre 255 pour recevoir la trame qui se finit par "OK"
"OK" devient la seule condition pour stopper la reception
(14:14:09.808)
(14:14:13.610) 123456789OK envoi
(14:14:13.699) 123456789 retour
(14:14:16.558) 123456789OK envoi
(14:14:16.639) 123456789 retour
(14:14:23.759) 1234567890123OK envoi
(14:14:23.783) 1234567890123 retour
(14:16:47.359) 1234567890123456789012345OK envoi
(14:16:47.394) 1234567890123456789012345 retour
Code : Tout sélectionner
// ======== test Zone =====================
txt=&Texte[0];
while (1)
{
if (UART1_Data_Ready() == 1) // if data is received
{
UART1_Read_Text(txt, "OK", 255) ; // reads text until 'OK' is found
UART1_Write_Text(txt) ;// sends back text
c1 = RCREG;
}
}
Bluetooth Electronics et envoi de texte
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
pspic a écrit :Bonjour Gérard,
Peux tu vérifier que TRISSC.6 = 0 et TRISC.7 = 1 ?
Quelle est la taille de la chaine à transmettre ?
Ou encore mieux, poste le code complet en MikroBasic.
Code : Tout sélectionner
While True
delay_ms(500)
if (UART1_Data_Ready() = 1) then
rec = UART1_Read() 'Char reçu du
if rec = "A" then LCD_OUT( 2,2,"A") end if
if rec = "G" then LCD_OUT( 2,2,"G ") end if
if rec = "D" then LCD_OUT( 2,2,"D ") end if
if rec = "R" then LCD_OUT( 2,2,"R ") end if
LCD_OUT (3, 1, "GG A ENCORE DU TAFF!")
end if
wend
Ce bout de code fonctionne avec BluetoothElectronics et avec Serial Bluetooth
TRISC.7 = 0 et ça fonctionne.
Bluetooth Electronics et envoi de texte
Bluetooth Electronics et envoi de texte
Bonjour,
D'après ce que je comprend, Gérard souhaite envoyer un caractère par bluetooth via bluetooth électronique
Ce code en C fait exactement ça (il récupère un caractère pour allumer une led)
Après il reste juste a l'afficher sur le LCD.
PS dans mon code je récupère le caractère en Hexa.
@++
D'après ce que je comprend, Gérard souhaite envoyer un caractère par bluetooth via bluetooth électronique
Ce code en C fait exactement ça (il récupère un caractère pour allumer une led)
Après il reste juste a l'afficher sur le LCD.
PS dans mon code je récupère le caractère en Hexa.
@++
Modifié en dernier par venom le dim. 3 mai 2020 16:00, modifié 1 fois.
Bluetooth Electronics et envoi de texte
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
paulfjujo a écrit :bonjour Gerard , et à tous,
quelle appli android ?
Comment fais-tu pour envoyer ton texte ?
y a -t-il un terminateur comme CR ou CR LF en fin de string ..
texte : blalablaOK ou blalablaOK<CR><LF>
si le texte depasse 10 chars output devrait au moins contenir ces 10 chars.. à condition qu'ils soient bien emis coté appli Android
comment verifies-tu si tu enleves le UART1_Write_Text(ouput); ?
Pour le texte c'est Serial Bluetooth
Pas de CR ni LF
blabla"OK" comme texte
J'ai mis 255 pour la dernière valeur dans la procédure UART1_Read_Text(output, "OK", 255) et ça fonctionne mais pas vraiment. Sur le LCD je vois des caractères que je n'ai pas envoyé. J'ai aussi remis le renvoi du texte. Sur le téléphone je vois avant mon texte "^. D'où viennent ces caractères?
paulfjujo a écrit :===============================
j'ai fait un test , avec un terminal YAT
proge est en C, mais le principe est le meme
la reponse à l'envoi de la commande peut différer beaucoup
si on envoie le string char par char ou d'une seule traite
le Nb de char 10 , inclus les 2 chars de "OK" !!!
des qu'on arrive au dessus de 10, c'est aleatoire ! on peut meme ne recuperer qu'un seul car ou rien
Buggé la lib ?
Perso je ne l'utilise pas, je prefere de loin , utiliser la gestion via buffer et interrupt sur RX
bien plus fiable ..
par contre ,il vaut Mieux mettre 255 pour recevoir la trame qui se finit par "OK"
"OK" devient la seule condition pour stopper la reception
(14:14:09.808)
(14:14:13.610) 123456789OK envoi
(14:14:13.699) 123456789 retour
(14:14:16.558) 123456789OK envoi
(14:14:16.639) 123456789 retour
(14:14:23.759) 1234567890123OK envoi
(14:14:23.783) 1234567890123 retour
(14:16:47.359) 1234567890123456789012345OK envoi
(14:16:47.394) 1234567890123456789012345 retourCode : Tout sélectionner
// ======== test Zone =====================
txt=&Texte[0];
while (1)
{
if (UART1_Data_Ready() == 1) // if data is received
{
UART1_Read_Text(txt, "OK", 255) ; // reads text until 'OK' is found
UART1_Write_Text(txt) ;// sends back text
c1 = RCREG;
}
}
Je ne comprends pas les lignes
Code : Tout sélectionner
txt=&Texte[0];
c1 = RCREG;
Mon code :
Code : Tout sélectionner
DEBUT:
portc.3 = 0 'rouge
for i = 0 to 255
output [i] = 0
next i
if (UART1_Data_Ready() = 1) then ' if data is received
UART1_Read_Text(output, "OK", 255) 'reads text until 'OK' is found
UART1_Write_Text(output) ' sends back text
portc.3 = 1 'rouge
end if
delay_ms (500)
LCD_OUT (1, 1, output)
delay_ms (1500)
GOTO DEBUT
C'est ce code qui me donne les caractères indésirables et sur le LCD et au retour sur le téléphone.
Bluetooth Electronics et envoi de texte
Crée la Sub procedure interrupt suivante :
La variable Rec récupère la chaine reçue à condition qu'elle soit inférieure à 254 caractères.
Code : Tout sélectionner
'_______________________________________________________________________________
Sub procedure interrupt 'Interruption RCIF
if PIR1.RCIF = 1 then
if (UART1_Data_Ready() <> 0) then
UART1_READ_TEXT(Rec , "OK", 255)
end if
PIR1.RCIF = 0
end if
end sub
La variable Rec récupère la chaine reçue à condition qu'elle soit inférieure à 254 caractères.
Bluetooth Electronics et envoi de texte
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
pspic a écrit :Je n'ai pas bien compris, tu cherches à transmettre un char ou une chaine de caractère ?
Si c'est une chaine, quel est sa taille ?
Je cherche à transmettre une chaîne de caractères.
Le code en #4 était pour montrer ce qui fonctionne.
Bluetooth Electronics et envoi de texte
- Gérard
Expert- Messages : 1644
- Âge : 65
- Enregistré en : septembre 2015
- Localisation : Alsace - Haut-Rhin
venom a écrit :Bonjour,
D'après ce que je comprend, Gérard souhaite envoyer un caractère par bluetooth via bluetooth électronique
Ce code en C fait exactement ça (il récupère un caractère pour allumer une led)
Après il reste juste a l'afficher sur le LCD.
PS dans mon code je récupère le caractère en Hexa.
@++
Oui Venom, j'ai suivi ton exemple et pour allumer une LED ou afficher un caractère ça marche.
Pour un texte (chaîne de caractères), je ne sais pas faire avec Bluetooth electronics. Avec Serial Bluetooth, ça avance.
Retourner vers « Coin Fourre-tout »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 87 invités