Bonjour,
Je suis récemment passé de microchip à STMH7 pour mes MCU. Manuel ici
STM Fournit plein de fct déja toutes prêtes pour faciliter l'utilisation de leur MCU, c'est pas trop compliqué.
Par contre, si on se plonge dans la documentation, c'est plus la même histoire. Un exemple pour le NVIC page 731:
la première chose dont parle la doc est le "Systick calibration value register", on se dit " ah ça doit être important" .
On nous explique alors comment calculer une valeur de Reload value avec un exemple :
On apprend aussi que cette valeur de reload value doit être écrite dans SYST_RVR. Problème, la recherche de SYS_RVR dans les 3000 pages ne renvoi qu'une occurrence, celle que l'on vient de lire ! .For example, to achieve a timebase of 1 ms when the SysTick clock source is the 100 MHz
HCLK:
reload value = (FHCLK × SYST_CALIB) – 1
reload value = ((FHCLK ⁄ 8) × SYST_CALIB) – 1
reload value = (100 × SYST_CALIB) – 1 = 0x1869F
Puis la doc passe à autre chose.
Autre exemple, activation des interruptions sur front montant. Whouah. Meme par Cube c'est pas clair , car en fait il ne faut PAS choisir le mode input mais EXTI.
J'avais bien vu dans la doc que la notion de RE (Rising Egde) était lié au EXTI. Ca c'est clair , mais quand j'essaye de comprendre le lien entre GPIO et EXTI, c'est pas limpide. Je trouve des explications intéressante sur le net, mais pas dans la doc.
Pour commencer à comprendre , il a fallu que je fasse un exemple avec Cube , puis voir le code généré.
Ce que je comprends, c'est qu'il semble impossible d'utiliser la même pin sur plus de 1 ports en interruption .
Par exemple je ne vois pas comment configurer les interruptions pour avoir des interruptions sur A1,B1 ou C7,D7..Ca semble impossible. J'ai pas besoin de cette config, c'est pour un exemple, mais si quelqu'un peut infirmer ou confirmer ce que je pense, ça m'aiderait à savoir si j'ai compris ou non .
Dans le même genre, je ne comprend pas pourquoi on a 3 registres pour les RE, mais le code généré dans HAL_GPIO_Init n'utilise que RTSR1 ce que semble indiquer que seulement 16 interruptions en RE sont possible..
Si je compare avec Microchip, aucune question se pose. C'est limpide, logique, simple mais parfois buggué .
Je veux bien admettre avoir le cerveau lent, mais je trouve la doc tordue, pas claire..Faut lire parfois le datasheet , parfois le manuel de référence, parfois le manuel du programmeur etc..Environ 4000 pages !.
J'ai la sensation que même en lisant 40 fois la doc , il va toujours me manquer un "bout" pour faire le lien entre tous les éléments, et c'est très énervant.
Il y a peut être une autre source de documentation disponible et complète que je ne connais pas. Si un spécialiste peut aider je prends !
Cependant, les doc "hardware" sont plutôt bien faite, elle m'ont permis de réaliser une carte perso fonctionnelle, sans m'arracher les cheveux.
Si je passe sur du STM32H7 c'est pour utiliser la puissance du MCU pour mon code, pas pour appeler des fonctions qui font des boucles inutiles voir HAL_GPIO_Init . Bref je ne veux pas passer par HAL, je veux pouvoir exploiter le MCU directement.
Et pour ça j'ai besoin de comprendre.
Merci de m'avoir lu.
-----