реклама на сайте
подробности

 
 
> Default_Handler
Sergey_rzn62
сообщение Nov 29 2012, 05:28
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 16-11-12
Пользователь №: 74 411



Доброе утро!

Процессор STM32F407. Настройки компилятора -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mthumb -Wall -ffunction-sections -O0 -mfloat-abi=hard -g.
Обрабатываю данные, поступающие по UART. Каждые 20 мс поступают по 20 байт.

Вот кусок кода.
CODE
.....
while (1)
{
if(g_read_usart == 1)
{
f.wx = s.XGYRO_OUT * 0.0008726646259972;
f.wy = s.YGYRO_OUT * 0.0008726646259972;
f.wz = s.ZGYRO_OUT * 0.0008726646259972;

adis_f.ax = s.XACCL_OUT * 0.033;
adis_f.ay = s.YACCL_OUT * 0.033;
adis_f.az = s.ZACCL_OUT * 0.033;

if(g_coarse == 1)
{
ca.bias_wx += adis_f.wx;
ca.bias_wx += adis_f.wx;
ca.bias_wx += adis_f.wx;

ca.m_ax += adis_f.ax;
ca.m_ay += adis_f.ay;
ca.m_az += adis_f.az;
}
........
}

Вопрос в том, что при пошаговой отладке попадаю в функцию
Код
static void Default_Handler(void)
{
    /* Go into an infinite loop. */
    while (1)
    {
    }
}

В чём может быть проблема?

Код такой:

CODE
while (1)
{
if(g_read_usart == 1)
{
f.wx = s.XGYRO_OUT * 0.0008726646259972;
f.wy = s.YGYRO_OUT * 0.0008726646259972;
f.wz = s.ZGYRO_OUT * 0.0008726646259972;

f.ax = s.XACCL_OUT * 0.033;
f.ay = s.YACCL_OUT * 0.033;
f.az = s.ZACCL_OUT * 0.033;

if(g_coarse == 1)
{
ca.bias_wx += f.wx;
ca.bias_wx += f.wx;
ca.bias_wx += f.wx;

ca.m_ax += f.ax;
ca.m_ay += f.ay;
ca.m_az += f.az;
}
........
}


Сообщение отредактировал IgorKossak - Nov 29 2012, 13:03
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
PoReX
сообщение Nov 29 2012, 05:47
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 1-05-09
Из: Ростов-на-Дону
Пользователь №: 48 518



Зачем вы Default Handler используете? Покажите стартап файл. Где обработка прерывания по UARTу? Лучше выложите проект целиком, а то не понятно как вы настраиваете UART и обрабатываете прерывания.
Если включено прерывание по UARTу, то после приема байта вы попадаете в Default, а должны в USART(1)_IRQHandler. Видимо не определен обработчик.


--------------------
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01344 секунд с 7
ELECTRONIX ©2004-2016