Bonjour a toutes et tous,
Mon but: controler le start/stop d'une machine déjà existante par la carte (STM32F429II). La machine externe s'enclenche lorsque l'on court-circuite deux fils prévu sur cette machine. Si on coupe le cicruit, la machine s'arrête. Le signal de commande est du DC 12V.
Je dois donc faire passer ce câble via ma carte . Celle-ci doit relier directement l'entrée à la sortie pour enclencher cette machine. Lorsque la sortie est coupée sur la carte, la machine s'arrête. Il s'agit donc d'un simple switch.
Question: comment m'y prendre avec les instructions disponible?
Voila ce que je fais actuellement:
1) Initialisation Pin 0 pour entrée, Pin 1 pour sortie (utilisation de la libraire STM32F4xx_GPIO.c)
J'imagine que ce code simpliste n'est pas suffisant, mais je ne vois pas bien ce qui manque. La méthode est-elle correcte ou bien suis je a coté de la plaque?Code:uint16_t test = 0; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //Pin d'entrée GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOG, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; // Pin sortie GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOG, &GPIO_InitStructure); if(mode == SILICONAGE_ON) //cas où la machine est activée { test = GPIO_ReadInputData(GPIOA); GPIO_Write(GPIOA, test); } else // cas où la machine est stoppée { GPIO_ResetBits(GPIOA, GPIO_Pin_1); }
Vraiment merci d'avance aux éventuels motivés capable de me répondre.
-----