Перейти к содержанию

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


artos5

Рекомендуемые сообщения

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

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

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Сергей.

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

  • 3 года спустя...
В 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

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

Ссылка на комментарий
Поделиться на другие сайты

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

 

 

 

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

Изменено пользователем misterflud
Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, misterflud сказал:

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

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

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

lcd_set_user_char

 

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

 

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

В 15.09.2017 в 22:24, elki сказал:

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

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

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

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

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

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

lcd_set_user_char

 

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

 

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

Ссылка на комментарий
Поделиться на другие сайты

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Взял проект у 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 файл формирует.
Уже замудохался.

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • @Gomerchik а вы контролировали как меняется уровень сигнала на А1 ардуины?
    • Спасибо за совет. Автором данного проекта я не являюсь, мне нужно было воссоздать уличный датчик для метеостанции взамен пропавшего(( Из разного найденного в интернете этот проект работает с моей станцией Орегон (спасибо автору). В понедельник попробую последовать Вашему совету. Но все равно куча непоняток  как блин это работает)) Если дело в неправильной отправки команды, то как на это влияет подключение датчика температуры? Если совсем не подключать таймер, то передача идет один раз (как и прописано в программе), станция принимает и отображает, но минут через сколько-то естественно станция уже ни чего не показывает, но с таймером питание полностью не пропадает с ардуинки, но передача сигнала каким-то образом работает по таймеру.  В моем понимании данная команда подается один раз потому, что таймер должен отключать питание МК после передачи сигнала и каждые 43 сек снова подавать питание (так того требует станция).  Ардуино передает показания температуры отключается полностью и 43 секунды мк не работает.  Сейчас у меня питание пока сделано на подпитке от солнечной батареи, но пару пасмурных дней и аккумулятор съедается до отключения(
    • thickman Так и сделаю. Вытащу из бу БП.  Буду знать, как отличить. Благодарю. Заменил транзисторы на IRFB20N50K. Картина стала, совсем другой.  Похоже трудность не в драйвере, на момент подвозбуда, переходные процессы, в нем, завершены. Увеличил затворные резисторы до 50ом, стало немного лучше.  Не понятно, почему верхний ключ греется несколько сильнее. Возможно, стоит посмотреть ток в коллекторе.  Снабберные емкости временно удалил, изменений не произошло.  Замена ТГР на другой, на кольце MSTN-16A-TH, так же, результата не принесла.   irfb20n50k.pdf
    • А что нить из ассортимента активных щупов производства СССР..))
    • Типа такого: https://aliexpress.ru/item/2044864227.html?sku_id=58855020183
    • поняли неправильно. У ТЛ494 никакой защиты нет, усилители ошибки не защита, они не должны приводить к ложным импульсам. Причем тут "микруха" ?  надо нагружать ВСЁ. До сих пор вообще непонятно о каком ИИП идет речь и сколько у него каналов. Бесполезно схему рисовать? - Помогать так бесполезно. Картина кривая по самое "немогу" продолжаются картинки, снятые через ногу и без цены деления.
×
×
  • Создать...