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

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-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 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 пользователей онлайн

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

×
×
  • Создать...