Jump to content

    

drapoz

Участник
  • Content Count

    13
  • Joined

  • Last visited

Community Reputation

0 Обычный

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Полтава
  1. Привет. Помогите разобратся что оно от меня хочет. Суть проблемы в следующем , собрал я в кучу uCOS-II с uC/GUI в IAR v6.3 под контролер STM32F103VE , все компилируется без ошибок . Заливаю все в контролер, а на экране 3.2inc пусто , смотрю через отладчик и вижу что меня закидывает в файл os_cpu_a.asm в эту процедеру : OSStartHighRdy LDR R0, =NVIC_SYSPRI14 ; Set the PendSV exception priority LDR R1, =NVIC_PENDSV_PRI STRB R1, [R0] MOVS R0, #0 ; Set the PSP to 0 for initial context switch call MSR PSP, R0 LDR R0, =OSRunning ; OSRunning = TRUE MOVS R1, #1 STRB R1, [R0] LDR R0, =NVIC_INT_CTRL ; Trigger the PendSV exception (causes context switch) LDR R1, =NVIC_PENDSVSET STR R1, [R0] CPSIE I ; Enable interrupts at processor level OSStartHang B OSStartHang ; Should never get here и весит на последней строке " B OSStartHang ; Should never get here". Так как я в асемблере полный ноль и не знаю что с этим делать. Помогите подскажите почему отладчик останавливается в этом месте.
  2. Тема закрыта проблема решылась ,тоненький волосок от провода коротил на корпус .Сопли они и в носе мешают. Огромное спасибо все ,а особенно alexdos.
  3. Контролер с PC обмениваются здесь все работает терминалка ловит в HEX 41 54 0D. Может скорсть маловата или я уже не знаю что и думать.
  4. Да в этом то и проблема у меня нет лог. анализатора и осциллографа. Или я не так понял "Проверте физически"
  5. Когда с PC через терминалку шлю команды то модем отвечает на все команды которые шлеш, а вот с контролера я пока ориентируюсь только по отладчику, ну и без бряков по светодиодах.
  6. Модему я через PC задал 9600 baudrate, контролер 9600, яшлю команду "AT\r" но ответа нет . По отладчику шлются три символа А отправляю я через свою функцию , вот она: USART2_SendString((u8*)"AT\r",sizeof ("AT\r")); void USART2_SendString(u8* data,u16 len) { u16 i; for (i=0; i<len; i++){ USART2_SendByte(data[i]); } } void USART2_SendByte(u16 Data) { while (!(USART2->SR & USART_FLAG_TXE)); USART2->DR = (Data & (uint16_t)0x01FF); } Авот и оно ,не хочет вызываться. void USART2_IRQHandler(void) { GPIO_SetBits(GPIOD,GPIO_Pin_8);//led for debug if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) { in_bufer_2[counter_2]=USART2->DR; if(in_bufer_2[counter_2]==0) { counter_2=0; GPIO_SetBits(GPIOD,GPIO_Pin_9);//led for debug } counter_2++; } // Îáðàáîòêà ñîáûòèÿ TXE if ( USART_GetITStatus(USART2, USART_IT_TXE) ) { USART_ClearITPendingBit(USART2, USART_IT_TXE); } }
  7. Спасибо за подсказку но я сделал эксперемент у меня есть вторая отладочная плата (STM32F103VET6(development board ) ) у нее на борту стоит два USART разьема с готовым преобразователем , но проблема осталась та же что и с дискавери.
  8. Нет я подключаю через ST232CN преобразователь уровней.
  9. Я все прекрасно понимаю поменяй rx tx местами да и по мануалу как подключить rs232 я видел , но остается загадочное явление (шнур я использую один и тот же три повода RX TX GND) PC-CINTERION эта связь работает, PC-STM32 работает, а эта CINTERION-STM32 не работает. RX TX я менял местами не оно.
  10. Здравствуйте ,прошу помощи . Суть проблемы такова есть GSM модем PC и STM32VL DISCOVER подключаю по RX TX и GND модем CINTERION MC52i к компьютеру, шлю АТ команды ответ получаю. Компьютер подключаю к STM32 (stm шлет команды "ATE0\r" через функцию Send_Str(port,*data); ) обмен происходит пк получает посылку, а контролер прерывается на приход байта . Ну , а когда соединяю модем с stm то ответ я не получаю. Подскажите в чем проблема?
  11. Висяк=Прерывыние+STM32

    Привет народ нуждаюсь в вашей помощи, проблема с прерываниями на stm32 . Суть проблемы в следующем, когда осуществляться прерывание будь то RXNE или по нажатию кнопочки то в отладчике ,а это IAR, код выбрасывает в BusFault_Handler и тут полный висяк. Подскажите в чем проблема где я делаю ошибку ? В настройках компилятора в StdPeriph_Lib или в самом коде. Програмирую в IAR с StdPeriph_Lib ,а код мой вот: CODE#include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" int main() { GPIO_InitTypeDef PORT; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2ENR_AFIOEN , ENABLE); PORT.GPIO_Pin = (GPIO_Pin_9 | GPIO_Pin_8); PORT.GPIO_Mode = GPIO_Mode_Out_PP; PORT.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(GPIOC, &PORT); AFIO->EXTICR[0]|=AFIO_EXTICR1_EXTI1_PB; //Прерывания от нулевой и первой ноги разрешены EXTI->IMR|=(EXTI_IMR_MR0 | EXTI_IMR_MR1); //Прерывания на обоих ногах по нарастающему фронту EXTI->RTSR|=(EXTI_RTSR_TR0 | EXTI_RTSR_TR1); //Разрешаем оба прерывания NVIC_EnableIRQ (EXTI0_IRQn); NVIC_EnableIRQ (EXTI1_IRQn); while(1) { } } void EXTI0_IRQHandler(void) { GPIOC->ODR^=GPIO_Pin_8; EXTI->PR|=0x01; } void EXTI1_IRQHandler(void) { GPIOC->ODR^=GPIO_Pin_9; EXTI->PR|=0x02; } Огромное спасибо. Пардон народ разобрался тема снята и закрыта спасибо. Проблема была в настройках компилятора, не указал путь $PROJ_DIR$\CM3\STM32F10x\startup\iar\. Все работает
  12. Привет форумчани , я начинающий в ARM STM32. До этого я работал над AVR 8bit. Я для начала купил STM32-discovery на базе 32F100RBT6 и в добавок заказал плату на камушке STM32F103VET6. Вопрос в том, на плате с STM32F103VET6 стоит разьем JTAG , а SWD на борту нет, могу ли я подключить SWD с STM32-discovery к пинам (SWDIO SWCLK) которые стоят как GPIO на плате STM32F103VET6 , шить и отлаживать камушек. Или таки покупать JTAG адаптер спасибо за помощь.