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

Orel007127

Members
  • Постов

    2
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    Менее года

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Достижения Orel007127

Новичок

Новичок (1/14)

  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Здравствуйте. Поскольку мои микроконтроллеры пока что находятся на складах в другой стране, я бы хотел немого поиграться в симуляторе. Получаю .hex в Keil 5 и CoIDE 1.7.8, закидываю их в протеус и при симуляции 10 раз в микросекунду мне сообщают, что "Access to register of unclocked peripheral at 0x40010800 cause BUS_FAULT". Я правильно понимаю, что это не включилось тактирование? В данном случае (нашел в даташите) это адрес регистра GPIOA_CRL, но если заместо работы с портами попытаться насnроить к примеру таймер, то будет та же самая ошибка, только адрес в ошибке поменяется на регистры таймеров. В Keil в pack installer я выбрал STM32F103C6 и установил все что можно. При создании проекта я выбираю этот микроконтроллер и подключаю CORE из CMSIS, Startup из Devise, RCC, GPIO с Framevork из StdPerifDevise. Потом нажимаю ПКМ по Source Group 1, выбираю Add New Item, где добавляю main.c. Ну и данный код в main: #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" int main(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); while(1) { } } Одних этих include достаточно ведь? Пути к папкам, где лежат эти файлы нигде не надо же указывать? В общем далее в Options for Target на в кладке Output, ставлю галку Create HEX. Нажимаю Build, ошибок нет, получаю .hex, закидываю его в протеус ну и эта ошибка. Пробовал без StdPerif (подключив только CORE из CMSIS и Startup из Devise). Тактирование включал записью в регистр RCC->APB2ENR число 0x4 или 0xFFFFFFFF и настраивал ножки в GPIOA->CRL числом 0x3. Тот же самый результат. В CoIDE выбрал микроконтроллер и подключил CMSIS Boot, CMSIS core RCC, GPIO. Набрал тот же самый код, Build без ошибок и все равно в протеусе ошибка. Полазил по файлам библиотек, вроде все нужные define есть (частота в 72 MHz точно не закоментирована). Так же пробовал поискать в инете различные готовые .hex для этого микроконтроллера, но либо вообще ничего не происходило, либо эта ошибка. Единственное можно при создание проекта в протеусе выбрать Create Firmware Project, появится вкладка для набора кода. Введенный туда "Hello, world!" вроде работает, точно не помню, но это не совсем то, что нужно. Atmega8 в протеусе нормально работала, а вот ARM никак не могу запустить. Ну и собственно вопрос: В может быть причина? Я неправильно создаю проект? Нерабочие библиотеки себе IDE скачали? Или если залить эти прошивки в реальный микроконтроллер, то они будут работать (проблема только в протеусе)?
  2. Здравствуйте. Есть ли здесь обладатели STM32F103C6 (желательно) или хотя-бы STM32F103C8, которые могут прошить свои микроконтроллеры моим .hex (самый простой «Hello, world!», мигающий светодиодом) и рассказать о результатах (хотя бы подается напряжение на ножку или нет)?
×
×
  • Создать...