Closed Wakayo-Quozorox closed 1 year ago
Problème rencontré par Hugo N., résolu (de son côté) en modifiant comme suit la fonction BSP_SX1272_receivePacketTimeout(uint32_t wait) dans le fichier SX1272.c
/*
Function: Configures the module to BSP_SX1272_receive information.
Returns: Integer that determines if there has been any error
state = 2 --> The command has not been executed
state = 1 --> There has been an error while executing the command
state = 0 --> The command has been executed with no errors
*/
uint8_t BSP_SX1272_receivePacketTimeout(uint32_t wait)
{
uint8_t state = 2;
uint8_t state_f = 2;
uint8_t st0 = 0;
#if (SX1272_debug_mode > 1)
my_printf("\r\n");
my_printf("Starting 'receivePacketTimeout'\r\n");
#endif
// Save the previous status
st0 = BSP_SX1272_Read(REG_OP_MODE);
// set RX mode
state = BSP_SX1272_receive();
// if RX mode is set correctly then wait for data
if( state == 0 )
{
// Wait for a new packet for 'wait' time
if( BSP_SX1272_availableData(wait) )
{
// If packet received, getPacket
state_f = BSP_SX1272_getPacket(MAX_TIMEOUT);
}
else
{
state_f = 1;
}
}
else
{
state_f = state;
}
BSP_SX1272_Write(REG_OP_MODE, st0); // Getting back to previous status
return state_f;
}
Solution proposée par Hugo N. ne fonctionne pas, le problème est toujours présent après modification de la fonction BSP_SX1272_receivePacketTimeout(uint32_t wait).
Malo dit que si on appelle la fonction setup transmission (???) avant d'envoyer ça fonctionne, à étudier pour voir quel mode de configuration permet de résoudre le problème.
Vena m'a dit que faire un init (peut être ce dont parlait malo) entre chaque changement de mode devrait resoudre le pobleme car remise a la config intiale qui marche bien. Pour débugger, il m'a ensuite dit de commenter une par une les lignes de l'init pour voir laquelle est necessaire.
La technique de vena marche, reste plus qu'a affiner et trouver la ligne qui nous intéresse
e = BSP_SX1272_setSF(paramSF); // SF = 12
e = BSP_SX1272_setBW(paramBW); // BW = 125 KHz
regle le probleme pour linstant
Plus précisément, le problème semble être réglé en ajoutant les lignes :
if( currentstate._modem == FSK )
{
BSP_SX1272_setLORA(); // Setting LoRa mode
}
else
{
/// LoRa mode
// LoRa standby mode
BSP_SX1272_Write(REG_OP_MODE, LORA_STANDBY_MODE);
}
Réception et émission impossible dans le même code, problème d'instruction lorsqu'on essaie d'envoyer après une réception. Problème venant probablement de la bibliothèque SC1272.