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

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 пользователей онлайн

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

  • Сообщения

    • Ну так теперь фигня вопрос. Проверить, что кнопки невозможно замкнуть одновременно, да определить, на какой ток транзисторы нужны. По характеристикам мотора или по максимально-допустимому току диодов D1-D4. Навскидку, моторчик низковольтный, диоды тоже. Транзисторы тогда на PBSS4350 можно заменить. Они на Али почти задаром продаются.
    • Сами же понимаете, что так не может быть. Или нет "сквозняка", или схема неправильно собрана, элементы не те, битые и пр., и схема защиты не работает. Проверьте сначала работу защёлки защиты при питании от 15 В, отпаяв R19 и подавая туда медленно увеличивающееся напряжение до 1,5 - 2 В (можно с потенциометра ом на 100-500). Добейтесь, чтобы работала. Порог срабатывания измерьте. Пересчитайте в ток через резистор 0,1 Ом. Соответствует ли "правильному"? Проверьте, что у этого резистора сопротивление действительно 0,1 Ом. Запаяйте 0,1 Ом обратно. Напишите, какая лампочка. А то мало ли какая, может она не от "сквозняка", а от броска тока заряда С18 С16 мигает. Транзисторы ключей проверьте. Впаяйте вместо первичной трансформатора резистор ом 150 - 300, чтобы ток с ключей в этот "эквивалент трансформатора" не больше 50-100 мА был. Посмотрите форму напряжения на выходе ключей, в точке соединения С16 и С18, на питании после лампочки. Ищите, где ляп. Умозрительно подсказать можно только по каким-то измеренным данным. Кроме вас никто их не добудет. В общем, как в анекдоте: - Молодой человек, ну делайте же уже хоть что-нибудь!
    • Ну так можно увеличить глубину ООС, тем самым понизив чувствительность и повысив линейность
    • Судя по этой картинке   в трухе передней панели под выступающие болты и шишки паек ЗК динамиков выковыряныфрезерованы выемки, иначе бы динамики так плотно не прилегали бы к ДВП.    А оно тебе надо? "Работает - не мешай"(с)/это уже аксиома, не требующая доказательств/ , пытаясь сделать лучше, чем сделано на заводе. Сanton-ят, т.е. поют, и лучше, чем есть, тебе не сделать. Ну перенесёшь ты динамики наружу, а что тебе это даст? Кроме того, что при попытке их продать(а продавать их когда-нибудь придётся, т.к. эта акустика бюджетного сегмента без потуг на высший класс Hi-Fi) , тебе придётся объяснять потенциальному покупателю причину, по которой какой-то умник заколхозил такую переделку с акустикой, ты ничего хорошего не получишь. Задуманная тобой переделка - это по сути возня ради возни. 
    • Малыш, чушь пока здесь мелешь только ты. Сидел бы лучше в своей оффтопной теме, лепил бы на своём 3D-пинтере куколок, и не лез бы в те темы, в которых ты - ноль. 
    • Там нашел. Вроде купил.  Спасибо всем
×
×
  • Создать...