0
Προσπαθώ μια βδομάδα τώρα () να κάνω εξομοίωση με STM32F103C4 και μια LCD2x16 (1602).
Έχω δοκιμάσει με διάφορες βιβλιοθήκες και παραδείγματα, αποτέλεσμα μηδέν...
Οπότε πήγα σε ένα πολύ στοιχειώδες παράδειγμα (το βρήκα στο youtube) όπου χρησιμοποιεί λογικές πύλες και το κάνει 'χειροκίνητα': τα High και τα Low των πυλών τα κάνει με κλικ, όχι με μικροελεγκτή.
Αυτό όντως δουλεύει, το δοκίμασα, οπότε λέω να το κάνω με μικροελεγκτή.
Αλλά τίποτα.
Μια παρατήρηση δικιά μου: τα πινς του μικροελεγκτή μπορούν μόνο να παροχετεύσουν (sink) ρεύμα προς τη γη.
Οπότε για να οδηγήσουμε ένα λεντ πρέπει να το συνδέσουμε έτσι:
stm32-1.png
Μια LCD όμως οδηγείται με παλμούς, το μηδέν είναι 0V και το 1 είναι 3.3V.
Οπότε πώς συνδέεται με τον STM32?
Χρησιμοποιώ STM32CubeMX 5.2.1 + Atollic TrueStudio 9.3.0 και Proteus 8.6.
Στον CubeMX, έχω δοκιμάσει όλους τους πιθανούς συνδυασμούς για τα πινς: output push pul, open drain, χωρίς pull up αντίσταση, με pull up αντίσταση, τα πάντα όλα.
Ο κώδικας που έπρεπε να ενεργοποιεί την οθόνη είναι στη συνάρτηση display_lcd.
Επισυνάπτω το project στο Proteus και το project του Atollic στο github, εδώ (πατάτε 'Download'. Περιέχει και το project για το CubeMX).
Στο Proteus θα δείτε ένα λεντ που έχω συνδέσει για δοκιμές και δεξιά δυο οθόνες, η μία συνδέεται με τον STM32 και η άλλη με λογικές πύλες. Η δεύτερη είναι για δοκιμές 'χειροκίνητα' (κάνοντας κλικ στις πύλες δηλαδή).
Τα φώτα σας.