03.04.2017, 20:06
|
|
Частый гость
Регистрация: 30.03.2017
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Proteus 8.6 + STM32 глючит ...
Здравствуйте, в Proteus 8.6 SP2 столкнулся с глюком на STM32. Порты ввода\вывода активируются только в режиме "open-drain". По умолчанию, оставив регистры CNF в нуле, порты должны быть в режиме "push-pull", но они в любом случае работают в режиме "open-drain". Кто-то сталкивался с этим ?
|
|
|
|
04.04.2017, 11:32
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,830
Сказал спасибо: 919
Сказали Спасибо 4,302 раз(а) в 2,571 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
ST сэкономил на регистрах. Поэтому инитиализация GPIO без SPL - часто болезненный процесс, если больше одного пина за раз надо сконфигурировать. Поэтому давайте ваш код, иначе говорить не о чем. Подозревать протеус можно бесконечно.
|
|
|
|
04.04.2017, 16:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
Скучный выбор stm32
__________________
Глаза боятся,а руки делают.
|
|
|
|
04.04.2017, 17:13
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,830
Сказал спасибо: 919
Сказали Спасибо 4,302 раз(а) в 2,571 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
Сам факт, что они его все таки добавили уже огонь! Не скажу, что сам буду пользоваться, но начинающим однозначно пригодится.
|
|
|
|
04.04.2017, 23:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
А может какой другой симулятор переплюнет протеус и создаст модели stm32
__________________
Глаза боятся,а руки делают.
|
|
|
|
06.04.2017, 08:04
|
|
Частый гость
Регистрация: 30.03.2017
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
#include "stm32f10x.h"
int main()
{
RCC-›APB2ENR |= RCC_APB2ENR_IOPAEN;
GPIOA-›CRL &= ~GPIO_CRL_CNF4;
GPIOA-›CRL |= GPIO_CRL_MODE4;
while (1)
{
GPIOA-›BRR|=GPIO_BSRR_BS4;
for ( int i=0; i‹300000; i++) {}
GPIOA-›BRR|=GPIO_BSRR_BR4;
for ( int i=0; i‹300000; i++) {}
}
}
Вот кусок программы, мигает только при подключении по схеме с открытым стоком.
|
|
|
|
06.04.2017, 08:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
Не инвертируете выход,а два раза сбрасываете после каждой задержки.
GPIOA-›BRR|=GPIO_BSRR_BR4;
__________________
Глаза боятся,а руки делают.
Последний раз редактировалось CERGEI1982; 06.04.2017 в 08:47.
|
|
|
|
06.04.2017, 11:03
|
|
Частый гость
Регистрация: 30.03.2017
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
#include "stm32f10x.h"
int main()
{
RCC-›APB2ENR |= RCC_APB2ENR_IOPAEN;
GPIOA-›CRL &= ~GPIO_CRL_CNF4;
GPIOA-›CRL |= GPIO_CRL_MODE4;
while (1)
{
GPIOA-›BSRR|=GPIO_BSRR_BS4;
for ( int i=0; i‹300000; i++) {}
GPIOA-›BSRR|=GPIO_BSRR_BR4;
for ( int i=0; i‹300000; i++) {}
}
}
В посте №6 неверно. Вот так было, BRR исправил на BSRR.
|
|
|
|
11.04.2017, 16:16
|
|
Частый гость
Регистрация: 15.06.2011
Сообщений: 29
Сказал спасибо: 0
Сказали Спасибо 15 раз(а) в 5 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
У кого-то вообще работают модели STM32? Что с SPL что с кодом в этой теме такая многократно повторяющаяся ошибка
Цитата:
|
Access to register of unclocked peripheral at 0x40010800 cause BUS_FAULT [U1_CM3CORE]
|
В лог добавляются больше тысячи строк в секунду с упоминанием этой ошибки. Такое впечатление что модель STM32 сама по себе перезагружается после ошибки.
|
|
|
|
01.05.2017, 14:05
|
|
Прохожий
Регистрация: 10.07.2006
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Proteus 8.6 + STM32 глючит ...
У меня работает код из темы. НО, на GPIOA-›BSRR|=GPIO_BSRR_BR4; никакой реакции, GPIOA-›BSRR|=GPIO_BSRR_BS4; работает.
Заменил на GPIOA-›ODR&=~GPIO_ODR_ODR4; и заморгал...
Похоже, пока все очень криво...
proteus.rar
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:21.
|
|