Четверг, 05.12.2024, 01:42
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | ARM STM32 F4 с чего начать? - Страница 3 - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 9
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 8
  • 9
  • »
Модератор форума: ВитГо  
ARM STM32 F4 с чего начать?
ВитГоДата: Воскресенье, 02.03.2014, 21:08 | Сообщение # 31
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
Цитата uwrtey ()
Ага, просто я решил проверить и такой способ написания то-же... Но что то у меня не пошло...

в STM32 гораздо сложнее периферия, поэтому управляя ею побитово - наверняка ошибешься и фиг потом ошибку найдешь..

тут иногда все вроде правильно настраиваешь и не работает.. а если еще и мудрить в настройке - вообще ничего не заработает :-)


Виталий (аka ВитГо)
 
uwrteyДата: Воскресенье, 02.03.2014, 21:27 | Сообщение # 32
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
Цитата ВитГо ()

у тебя где проект то лежит ?

создай на диске C папку Project
не в каталоге кокоса !!


перезалил с интернета архив с проектом и вроде разобрался... все компилируется и прошивается.
но плата не находит двойной клик. ( светодиод не мигает )
снова перепаял чип акселерометра, но увы - так и не заработало...
где теперь ошибку искать?
( правда я мог перегреть микросхему - паял феном при 370 градусах по Цельсию )

Добавлено (02.03.2014, 21:27)
---------------------------------------------
о-о еще нашел недостаток компонентов!
не хватает R48 ( 0 Ом ??? ) но он вряд-ли решит проблему.


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 02.03.2014, 23:47
 
ВитГоДата: Понедельник, 03.03.2014, 05:36 | Сообщение # 33
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
резистор на 0 ом это перемычка !! так что смотри какая цепь..

ты кстати схему включения смотрел ?
Прикрепления: MB997.zip (300.3 Kb)


Виталий (аka ВитГо)
 
uwrteyДата: Понедельник, 03.03.2014, 08:58 | Сообщение # 34
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
конечно смотрел wink
про перемычку я понял, просто ни разу на схемах не видел как она обозначается.
эта перемычка стоит в цепи вывода PA4 ( в линии передачи аудио сигнала Audio_DAC_OUT )
Вот я и говорю, что даже если я ее установлю, то аксель все равно не заработает.


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Понедельник, 03.03.2014, 09:02
 
uwrteyДата: Понедельник, 03.03.2014, 20:22 | Сообщение # 35
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
Наконец-то удалось заставить акселерометр работать - это оказалась плохая пайка ( я впервые паял в корпусе LGA14 )
При пайке таких корпусов нельзя использовать флюс!
Он остается под микросхемой. А во время пайки кипит и сдвигает микросхему с контактных площадок.

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

Я взял новый чип ( да, да я купил уже второй аксель ) и предварительно, как следует, залудил плату ( лудил с флюсом )
Потом я отмыл весь флюс.
"Ножки" у микросхемы позолоченные - смекаете? Правильно! золото не окисляется, а значит лудить с флюсом такие ножки не нужно.
И вот таким способом при температуре фена 350 градусов - мне удалось запаять микросхему акселерометра.


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Понедельник, 03.03.2014, 20:22
 
ВитГоДата: Вторник, 04.03.2014, 05:07 | Сообщение # 36
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
температура фена не великовата ?

с акселем - поздравляю !!!

код под кокосом запустил ?


Виталий (аka ВитГо)
 
uwrteyДата: Среда, 05.03.2014, 00:10 | Сообщение # 37
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
Если сделать температуру меньше, то припой не успевает расплавится, а вместо этого нагревается вся плата.
И это всего лишь температура фена - температура в месте пайки намного меньше.

Да запустил под кокосом.
Взял готовый проект вот от сюда ( третий вариант )
В первый раз что то пошло не так... Не знаю что..
Удалил и скачал снова и все заработало.

Добавлено (05.03.2014, 00:10)
---------------------------------------------
Хочу вернуться к вопросу о непонятности написания кода....

Когда я только начал вникать в структуру написания кода на ассемблере для АВР, то мне очень помогла обучалка на радиокоте ( хоть и написана с кучей ошибок ) и Справка по Ассемблеру для Atmel AVR а так-же выручал сайт со справкой об системе команд АВР
А так-жи Ты (ВитГо) внес огромную лепту в мое образование... ( Поклон в пол )
Есть ли что-то подобное по языку СИ для ARM ?
Просто где бы я ни читал, все везде пишут по разному

Вот например код которым я включил светодиод на плате:
Код

// Подключаем заголовки
#include "stm32f4xx.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"

// Функция программной задержки
void Soft_Delay(volatile uint32_t number)
{
            while(number--);
}

int main(void)
{
            // Следующая строка для нас пока что магическая
            RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);

            // Настраиваем порты
            GPIO_InitTypeDef  ledinit;  // создаем структуру

            ledinit.GPIO_Mode = GPIO_Mode_OUT;  // направление - выход
            ledinit.GPIO_OType = GPIO_OType_PP;  // Двухтактный выход
            ledinit.GPIO_PuPd = GPIO_PuPd_NOPULL;  // Без подтяжки
            ledinit.GPIO_Speed = GPIO_Speed_2MHz;  // Скорость низкая
            ledinit.GPIO_Pin = (GPIO_Pin_12 | GPIO_Pin_13); // Светодиод LD3 на 12 и 13-ом выводе

            GPIO_Init(GPIOD, &ledinit);  // Функция, выполняющая настройку портов

            // Бесконечный цикл
        while(1)
        {
         // Включаем светодиод
         GPIO_SetBits(GPIOD, GPIO_Pin_12 | GPIO_Pin_13);

        }
}


Вот еще пример, но он у меня так и не заработал..
Этот код, по идее должен сделать то-же самое, что и предыдущий, но написание очень сильно отличается...

Код

#include "stm32f4xx_rcc.h"

int main(void)
{

RCC->APB2ENR |= RCC_APB2Periph_GPIOD; // включаем тактирование порта "D"

GPIOD->CRH |=0x00330000; // настраиваем порт
GPIOD->CRH &=0xFF33FFFF;

GPIOD->ODR |=(GPIO_ODR_ODR12|GPIO_ODR_ODR13); // выводим сигнал на PD12 и PD13
}

Дак вот, если я буду пользоваться только учебником по СИ, то я все равно не пойму как применить этот язык к конкретному типу МК.

Вот собственно я и подобрался к вопросу. ( с вашего позволения разобью его на пункты )

1) Что нужно почитать что-бы понять как применить знание языка к конкретному МК ?

2) И как нужно правильно писАть? ( Как в пером примере? Или как во втором? И сколько в обще существует способов? )
Или второй способ это смесь СИ и Ассемблера ?

3) И можно-ли в обще делать вставки на Ассемблере, если основная часть кода написана на СИ ?


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Среда, 05.03.2014, 00:16
 
ВитГоДата: Среда, 05.03.2014, 17:52 | Сообщение # 38
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
по коду

просто то что ты привел вначале - это использование процедур SPL (стандартная библиотека периферии)

то что ниже - это управление периферией напрямую записью в порты..

в принципе SPL делает тоже самое (записывает в порты) просто пишется более понятно...

ни в каком учебнике по СИ не будет описания регистров или функций SPL - это уже зависит от чипа и библиотек..

на счет того как правильно писать - я пишу с использованием SPL - быстродействие на самом деле страдает не сильно, но понятность кода и безошибочность написания возрастают многократно

вставки можно на асме писать.. но ты уверен что это тебе нужно ?


Виталий (аka ВитГо)
 
SergiДата: Среда, 05.03.2014, 21:15 | Сообщение # 39
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Мне SPL не понравилась. Поэтому пишу в регистры как в даташите. Имена одинаковые. В CMSIS прописаны дефайны и текст получается довольно наглядным. Если присваивать цифровые константы, можно, действительно, запутаться.
 
uwrteyДата: Среда, 05.03.2014, 22:55 | Сообщение # 40
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
для себя:
1) http://mcustep.ru/init....ii.html
2) http://nis-embedded.blogspot.ru/2013....-1.html


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Среда, 05.03.2014, 23:15
 
uwrteyДата: Суббота, 08.03.2014, 22:30 | Сообщение # 41
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
Блин, уже башка пухнет!
Ни чего не понимаю. Где нужно смотреть команды SPL ?

например:
открываю справочное руководство на станице 279 GPIO port output type register (GPIOx_OTYPER)
там таблица и приписка к ней:
These bits are written by software to configure the output type of the I/O port.
0: Output push-pull (reset state)
1: Output open-drain

а в коде это выглядит вот так ledinit.GPIO_OType = GPIO_OType_PP; // Двухтактный выход

во первых GPIOx_OTYPER записывается без буквы "R", во вторых присваивается не цифровое значение, а в виде букв "PP"

У меня закралось подозрение, что у меня не хватает какого-то справочного материала.
В котором была бы система команд для SPL....
Где я должен глядеть как настраивать порты/ таймеры/ АЦП и т.д.

с ассемблером "в изучении" все было в разы проще.

Добавлено (08.03.2014, 22:30)
---------------------------------------------
материал который я ищу, это случайно не stm32f4xx_dsp_stdperiph_lib_um.chm ????


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Суббота, 08.03.2014, 22:30
 
SergiДата: Суббота, 08.03.2014, 23:10 | Сообщение # 42
Подполковник
Группа: Проверенные
Сообщений: 540
Репутация: 55
Статус: Offline
Вот потому что нужно знать учебник по SPL, я ее и не использую biggrin .
 
uwrteyДата: Суббота, 08.03.2014, 23:17 | Сообщение # 43
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
где взять то такой учебник?
задублировал вопрос на радиокоте http://radiokot.ru/forum....1945319


не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Воскресенье, 09.03.2014, 18:41
 
ВитГоДата: Воскресенье, 09.03.2014, 20:57 | Сообщение # 44
Полковник
Группа: Администраторы
Сообщений: 2422
Репутация: 20
Статус: Offline
по SPL открывай соответствующий файл с расширением .h и смотри там объявления !
в принципе особых подсказок будет и не нужно - там и константы все расписаны, и функции..

// примечание от UWRTEY: файл в данном случае - stm32f4xx_gpio.h


Виталий (аka ВитГо)
 
uwrteyДата: Воскресенье, 09.03.2014, 22:24 | Сообщение # 45
Генерал-майор
Группа: Администраторы
Сообщений: 3300
Репутация: 11
Статус: Offline
а-а.. ясно, немного стало проясняться smile

не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Понедельник, 10.03.2014, 06:58
 
  • Страница 3 из 9
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 8
  • 9
  • »
Поиск:


Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz