Jump to content
artos5

Stm32F100 + Hd44780 = Глюк Библиотеки

Recommended Posts

stm32f103cbt6, шина вроде та

и у меня дисплей wh1202

Попробовал по прежнему чисто(

Edited by ZERRO_

Share this post


Link to post
Share on other sites

А осциллографом щупали ножки МК? Может импульсов вообще нету? Может ошибка в подключении? Очень часто бывает банальная ошибка в подключении.

Share this post


Link to post
Share on other sites

У меня нету осциллографа, подключение проверял раз 100, но тем не менее все может быть) Спасибо за помощь, продолжу завтра с новыми силами, надо победить этот дисплей :yes:

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Я его побеждал целый день. В процессе думал дисплей разобью :)

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Победа))) Все заработало даже без изменения таймингов. Причиной были ножки PB3 и PB4 подключил на PB6 и PB7 и все сразу заработало. Почему они не работали не знаю, так вроде звонятся, обрыва нет. Что интересно с самого начала менял все ножки кроме PB3 и PB4)

Share this post


Link to post
Share on other sites

Поздравляю! :) Библиотеку мою используете ? Или свою?

Share this post


Link to post
Share on other sites

Победа))) Все заработало даже без изменения таймингов. Причиной были ножки PB3 и PB4 подключил на PB6 и PB7 и все сразу заработало. Почему они не работали не знаю, так вроде звонятся, обрыва нет. Что интересно с самого начала менял все ножки кроме PB3 и PB4)

Вы представляете? У меня тоже РВ3 не работает! Точно также попался в эту ловушку....... проверил осциллографом все ноги , и определил что на РВ3 - тишина... решил зайти на форум в эту ветку и посмотреть какие ноги у вас не работали. В глубине души был уверен что у вас те же ноги не работают :)

Share this post


Link to post
Share on other sites

Вы представляете? У меня тоже РВ3 не работает! Точно также попался в эту ловушку....... проверил осциллографом все ноги , и определил что на РВ3 - тишина... решил зайти на форум в эту ветку и посмотреть какие ноги у вас не работали.

Эти ноги используются под JTAG и SWD.... Но можно отключить их и перенастроить на обычные входы-выходы. В реф мануале написано как это сделать. решаеться установкой одного бита.

Вот список ног которые еще не будут работать:

post-182793-0-70165800-1406346005_thumb.png

Share this post


Link to post
Share on other sites

Тоже наступал на эти грабли РВ3 после сброса настроен как JTDIO чтобы изменить надо установить биты SWJ_CFG[2:0] регистра AFIO_MAPR это описано в RM0008 раздел 9,3,5

Лекарство такое GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

Share this post


Link to post
Share on other sites

Вы представляете? У меня тоже РВ3 не работает! Точно также попался в эту ловушку....... проверил осциллографом все ноги , и определил что на РВ3 - тишина... решил зайти на форум в эту ветку и посмотреть какие ноги у вас не работали.

Эти ноги используются под JTAG и SWD.... Но можно отключить их и перенастроить на обычные входы-выходы. В реф мануале написано как это сделать. решаеться установкой одного бита.

Вот список ног которые еще не будут работать:

Полезнейшая информация!!! Спасибо ;)

Share this post


Link to post
Share on other sites

Я 7 сегментник подключал и столкнулся впервые с этим, думал пины спалил) А оказывается надо рефман повнимательней читать!!! Для разных серий контроллеров такие пины могут быть разными.

Share this post


Link to post
Share on other sites
В 11.07.2014 в 13:41, artos5 сказал:

Поздравляю! :) Библиотеку мою используете ? Или свою?

Добрый день. Мне очень важно запустить дисплей с мк, поэтому пишу даже в такую старую тему. Выскакивает ошибка :
       [cc] +0x0): multiple definition of `lcd_set_user_char'
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_set_user_char+0x0): first defined here
       [cc] collect2.exe: error: ld returned 1 exit status

Как возможно поправить? Не компилируется..

Share this post


Link to post
Share on other sites

GCC HOME: C:\Program Files (x86)\GNU Tools ARM Embedded\5.4 2016q3\bin
compile:
    [mkdir] Skipping C:\microcontrollers\IDEAS\CoIDE\workspace\2\2\Debug\bin because it already exists.
    [mkdir] Skipping C:\microcontrollers\IDEAS\CoIDE\workspace\2\2\Debug\obj because it already exists.
       [cc] Starting dependency analysis for 7 files.
       [cc] Parsing ..\..\..\cmsis_boot\startup\startup_stm32f10x_md_vl.c
       [cc] Parsing ..\..\..\cmsis_boot\system_stm32f10x.c
       [cc] Parsing ..\..\..\cmsis_boot\stm32f10x.h
       [cc] Parsing ..\..\..\cmsis\core_cm3.h
       [cc] Parsing ..\..\..\cmsis_boot\system_stm32f10x.h
       [cc] Parsing ..\..\..\cmsis_boot\stm32f10x_conf.h
       [cc] Parsing ..\..\..\cmsis\core_cmInstr.h
       [cc] Parsing ..\..\..\cmsis\core_cmFunc.h
       [cc] Parsing D:\microcontrollers\без I2C\project\forumcxemnet\2\hd44780_driver.c
       [cc] Parsing ..\..\..\hd44780.h
       [cc] Parsing ..\..\..\stm_lib\inc\stm32f10x_gpio.h
       [cc] Parsing ..\..\..\stm_lib\inc\stm32f10x_rcc.h
       [cc] Parsing ..\..\..\stm_lib\src\stm32f10x_gpio.c
       [cc] Parsing ..\..\..\main.c
       [cc] Parsing ..\..\..\hd44780_driver.h
       [cc] Parsing ..\..\..\stm_lib\src\stm32f10x_rcc.c
       [cc] Parsing ..\..\..\hd44780.c
       [cc] 7 files are up to date.
       [cc] 0 files to be recompiled from dependency analysis.
       [cc] 0 total files to be compiled.
       [cc] Starting link
       [cc] arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g -nostartfiles -Wl,-Map=2.map -O0 -Wl,--gc-sections -LC:\microcontrollers\IDEAS\CoIDE\configuration\ProgramData\2 -Wl,-TC:\microcontrollers\IDEAS\CoIDE\configuration\ProgramData\2/arm-gcc-link.ld -g -o 2.elf ..\obj\startup_stm32f10x_md_vl.o ..\obj\system_stm32f10x.o ..\obj\hd44780_driver.o ..\obj\stm32f10x_gpio.o ..\obj\main.o ..\obj\stm32f10x_rcc.o ..\obj\hd44780.o -L..\..\.. -lm -lgcc -lc -lrdimon
      

 

[cc] ..\obj\hd44780.o:(.bss+0x0): multiple definition of `data_port'
       [cc] ..\obj\hd44780_driver.o:(.bss+0x0): first defined here
       [cc] ..\obj\hd44780.o: In function `pause':
       [cc] hd44780.c:(.text.pause+0x0): multiple definition of `pause'
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.pause+0x0): first defined here
       [cc] ..\obj\hd44780.o: In function `lcd_puls':
       [cc] hd44780.c:(.text.lcd_puls+0x0): multiple definition of `lcd_puls'
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_puls+0x0): first defined here
       [cc] hd44780.c:(.text.lcd_com+0x0): multiple definition of `lcd_com'
       [cc] ..\obj\hd44780.o: In function `lcd_com':
       [cc] ..\obj\hd44780.o: In function `lcd_dat':
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_com+0x0): first defined here
       [cc] hd44780.c:(.text.lcd_dat+0x0): multiple definition of `lcd_dat'
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_dat+0x0): first defined here
       [cc] hd44780.c:(.text.lcd_xy+0x0): multiple definition of `lcd_xy'
       [cc] ..\obj\hd44780.o: In function `lcd_xy':
       [cc] ..\obj\hd44780.o: In function `lcd_init':
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_xy+0x0): first defined here
       [cc] hd44780.c:(.text.lcd_init+0x0): multiple definition of `lcd_init'
       [cc] ..\obj\hd44780.o: In function `kursor_set':
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_init+0x0): first defined here
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.kursor_set+0x0): first defined here
       [cc] hd44780.c:(.text.kursor_set+0x0): multiple definition of `kursor_set'
       [cc] ..\obj\hd44780.o: In function `lcd_clear':
       [cc] hd44780.c:(.text.lcd_clear+0x0): multiple definition of `lcd_clear'
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_clear+0x0): first defined here
       [cc] ..\obj\hd44780.o: In function `lcd_out':
       [cc] hd44780.c:(.text.lcd_out+0x0): multiple definition of `lcd_out'
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_out+0x0): first defined here
       [cc] ..\obj\hd44780.o: In function `lcd_set_user_char':
       [cc] hd44780.c:(.text.lcd_set_user_char+0x0): multiple definition of `lcd_set_user_char'
       [cc] ..\obj\hd44780_driver.o:hd44780_driver.c:(.text.lcd_set_user_char+0x0): first defined here
       [cc] 
       [cc] collect2.exe: error: ld returned 1 exit status

 

 

 

 Вот все что пишет компилятор

Edited by misterflud

Share this post


Link to post
Share on other sites

Какой компилятор? Где код? Экстрасенсов тут нет.

Если тупо пихать ему код написанный под другую IDE копипаст он и не заработает. Судя по всему используете кокоса. А библиотеку не подключили.

Share this post


Link to post
Share on other sites
4 часа назад, misterflud сказал:

Добрый день. Мне очень важно запустить дисплей с мк, поэтому пишу даже в такую старую тему. Выскакивает ошибка :
       [cc] +0x0): multiple definition of `lcd_set_user_char'

Как возможно поправить? Не компилируется..

Ищите где у вас несколько раз объявляется это:

lcd_set_user_char

 

Когда найдете и устраните , скорее всего новая ошибка вылезет . И так пока все ошибки не уберете .

 

Share this post


Link to post
Share on other sites
В 15.09.2017 в 22:24, elki сказал:

Какой компилятор? Где код? Экстрасенсов тут нет.

Если тупо пихать ему код написанный под другую IDE копипаст он и не заработает. Судя по всему используете кокоса. А библиотеку не подключили.

Да код тот же что у автора поста.  IDE тут явно не при чем -- влияет компилятор на ошибки. 

"А библиотеку не подключили." -- я все сделал как у автора.

В 15.09.2017 в 22:38, artos5 сказал:

Ищите где у вас несколько раз объявляется это:

lcd_set_user_char

 

Когда найдете и устраните , скорее всего новая ошибка вылезет . И так пока все ошибки не уберете .

 

А чем вы пользовались при запуске -- какой компилятор итд?

Share this post


Link to post
Share on other sites

никакой компилятор там не влияет. Просто колхоз в пространстве имен. Автору вопроса надо язык подковать. А то писать взялся, а книжку забыл почитать

Share this post


Link to post
Share on other sites

использовал первую библиотеку artos5, поставил такие же порты -- при инициализации просто выводит чёрные квадраты в 2 строки...

А дисплей питаете от 5.5 или от 3??

Share this post


Link to post
Share on other sites

Взял проект у artos5. Работаю в Atollic.

#include <stdio.h>

#include "stm32F10x.h"

#include "stm32f10x_gpio.h"

#include "Lcd1_driver.c"

 #include "Lcd1_driver.h"

 #include "stm32f10x_rcc.h"

void main()

{

lcd_init();

lcd_clear();

lcd_xy(0, 1) ; // выводить будем в верхнюю строку во вторую позицию

lcd_out("Hello world"); // выводим строку

while(1);

}

Компилирует без выдачи ошибок, правда пришлось h файл взять

в   #ifndef SOME_DEFINE
#define SOME_DEFINE

.......

#endif

выдаёт единственное предупреждение:

return type of 'main' is not 'int' и не формирует hex файл.

Не знаю, из-за этого или нет, но не хочет формировать hex файл.

В чём может быть дело?

В других проектах тоже даёт предупреждения, но hex файл формирует.
Уже замудохался.

Share this post


Link to post
Share on other sites
2 часа назад, viktor1942 сказал:

void main()

void main(void){}

Share this post


Link to post
Share on other sites

Когда я собрал вместе содержимое файлов си и h драйвера и main, то даже с 

этим предупреждением hex файл появился,  т. е.  проблема решилась, но я 

теперь хочу всё-таки разобраться, почему компилятору не нравится сборка

из этих файлов.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Понял.. А не подскажите случаем как его остужать...? Оригинальный был в усадке на лепесток радиатора надет... Если новый возьму, а то опять рассыпеться..
    • По схеме непонятные вопросы может и прояснят, а "включать фантазию" вряд ли будут, не тот форум.
    • Останавливает мент на дороге водителя и представляется: - Командир взвода Козлов. Предъявите документы ... Водитель: - Командир взвода кого?! ...
    • Дык и футеровка посыпалась, скорее всего, из за перегрева..... А что, термоусадка уже термоустойчивей керамики стала? Нет, не можно так поступать, а то, в скором времени, пожарники могут понадобиться
    • К такому же мастеру. Плохо искал. Схема типовая, в инете - вагон и маленькая тачка. Кст, подойдёт схема от многих китаёзных "изделий" с таким же составом микросхем. Что и чему противоречит? В даташите питание +18, т.е. 36 В, на плате 25В. Всё в пределах нормы.
    • @Dr. West,  почему блок питания не тянет-то? Работало же. И сейчас БП выдает 12В. Как определить, что блок питания уже или почти сдох? Наружние диоды на схеме не сдохли. В мосфете внутренний диод скорее всего сдох, т.к. показывает проводник между стоком и истоком. Вот что моторчик сдох скорее всего нужно погадать. Какие методы гадания в этом случае знаете? Почему Вы посчитали, что он открывается не полностью? Можно поинтересоваться, как Вы об этом узнали? И что же происходит, если БП дает миллиампер 500, а движку для нормального запуска и работы требуется не менее 1-2А? Что это значит? С какого по какое значение тока было ограничение? Вы все сообщения в теме прочли? К чему именно применять Ваше "ШТА"? Какое-то слово непонятно? Вместе с моторчиком точные характеристики не были переданы. Вы считаете, что необходимость кратковременной работы моторчика может быть чем-то оправданно? Чем?
    • Доброго времени суток форумчане!  Встал вопрос контроля тока вторичной обмотки по току первичной. И.....собственно проблема и непонятка. Касаемо токов обмоток НЧ трансформатора я в теме только о двух вещах:  ток холостого хода и баланс мощностей. Я почему то всегда думал что ток первичной обмотки нагруженного трансформатора полностью задает ток вторичной обмотки, если не учитывать потери в меди и железе разумеется (баланс мощностей в действии). Однако поэкспериментировав с трансформатором я получил непонятные для себя замеры. Имеем экспериментальный трансформатор. На холостом ходу ток первичной обмотки 280мА при 110В. Нагружаем вторичную обмотку 6.3В током величиной 1.3А. Наблюдаем ток первички 310мА. Сразу понятно что ток первички не задается полностью током вторички. тут очевидно... Возможно тогда складывается... Но! Считаем: мощность потребляемая от вторички составляет 6.3Вх1.3А = 8.2Вт  Пересчитываем ток в первичку согласно закону баланса мощностей, т.е. если вторичка потребляет 8.2Вт, то и потребление первичкой от сети должно увеличиться на 8.2Вт (если не учитывать КПД разумеется). Считаем прибавочный ток из формулы мощности P=UxI, соотвтственно прибавочный ток перчики должен быть I=P/U, т.е. 8.2/110 = 75мА. То есть поидее если полагать что к току холостого хода прибавляется пересчитанный ток нагрузки то я должен был наблюдать не 310мА, а 355мА под нагрузкой. Так из чего же складывается ток первичной обмотки? Как его правильно пересчитывать? Заранее спасибо за помощь!    P.S.: модераторы простите если следовало спрашивать об этом в разделе для начинающих, переносите если что:)
  • Покупай!

×
×
  • Create New...