Jump to content

    

zaicev_ekb

Участник
  • Content Count

    33
  • Joined

  • Last visited

Community Reputation

0 Обычный

About zaicev_ekb

  • Rank
    Участник

Информация

  • Город
    Array

Recent Profile Visitors

819 profile views
  1. Сергей спасибо за критику. Го это не HAL а SPL. Сделано как описывают сами ST в своем референсе. Даташит тоже читаю, и еррату тоже. За замечание еще раз спасибо. Буду пробовать. И в Кале перед функциями стоит префикс HAL. Халом я тоже не пользуюсь.
  2. Сергей вопрос в продолжение Конфиг USART rs485_data.delay = br9600_timeout; USART_InitStructure.USART_BaudRate = br9600; USART_InitStructure.USART_WordLength = USART_WordLength_9b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_Even; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init ( USART1, &USART_InitStructure ); USART1->CR1 |= ( 1 << 10 ) | ( 1 << 8 ); USART_ITConfig ( USART1, USART_IT_RXNE, ENABLE ); USART_ITConfig ( USART1, USART_IT_NE, ENABLE ); USART_ITConfig ( USART1, USART_IT_FE, ENABLE ); USART_ITConfig ( USART1, USART_IT_ERR, ENABLE ); обработка прерывания if ( USART_GetITStatus ( USART1, USART_IT_RXNE ) != RESET ) { USART_ClearITPendingBit ( USART1, USART_IT_RXNE ); rs485_data.rxtimer = 0; if ( rs485_data.rxcnt - 2 > ( RX_BUF_SIZE ) ) { rs485_data.rxcnt = 0; } rs485_data.buffer_rx[rs485_data.rxcnt] = USART1->DR & (uint16_t)0x01FF; rs485_data.rxcnt++; rs485_data.symbol_first = 1; rs485_data.rxtimer = rs485_data.delay ; } if ( USART_GetITStatus ( USART1, USART_IT_TC ) != RESET ) { USART_ClearITPendingBit ( USART1, USART_IT_TC ); rs485_dir_off(); rs485_data.txend = 0; USART_ITConfig ( USART1, USART_IT_TC, DISABLE ); rs485_data.Status_Tx = Tx_End; } if ( USART_GetITStatus ( USART1, USART_IT_TXE ) != RESET ) { USART_ClearITPendingBit ( USART1, USART_IT_TXE ); } if ( USART_GetITStatus ( USART1, USART_IT_LBD ) != RESET ) { USART_ClearITPendingBit ( USART1, USART_IT_LBD ); rs485_data.Status_Rx = Rx_Error; } if ( USART_GetITStatus ( USART1, USART_IT_ORE ) != RESET ) { USART_ClearITPendingBit ( USART1, USART_IT_ORE ); rs485_data.Status_Rx = Rx_Error; rs485_data.buffer_rx[rs485_data.rxcnt] = USART_ReceiveData ( USART1 ); rs485_data.rxcnt++; } if ( USART_GetITStatus ( USART1, USART_IT_FE ) != RESET ) { USART_ClearITPendingBit ( USART1, USART_IT_FE ); USART_ClearITPendingBit ( USART1, USART_IT_PE ); rs485_data.Status_Rx = Rx_Error; rs485_data.symbol_first = 0; } if ( USART_GetITStatus ( USART1, USART_IT_PE ) != RESET ) { USART_ClearITPendingBit ( USART1, USART_IT_PE ); rs485_data.Status_Rx = Rx_Error; rs485_data.symbol_first = 0; } При приеме байта в прерывание заходим но соответсвующий флаг PE не выставляется в регистре SR не выставляется
  3. Спасибо за волщебный пендель буду копать
  4. Доброго времени суток всем. Столкнулся с непонятным явлением USART сконфигурированный с одними параметрами связи, отвечает на запросы с другими параметрами связи Куда копать уже не знаю Ни кто не сталкивался с подобным?
  5. Такое ощущение что вы просто хотите набить свое портфолио чужими работами. Сроки? Оплата? Или вы думаете что все кинуться к вам? И будут наперебой предлагать?
  6. Cбасибо за развернутый ответ. За HardFault в курсе. Я имел в виду unit тесты.
  7. Доброго времени суток всем. Кто как тестирует код под кейлом? Если тему создал не такм где надо, просьба к админам перенести
  8. Пишите в личку. Или оставьве свои координаты
  9. Написал вам на указаное мыло, а в ответ тишина.... Видимо вам так нужны монтажники
  10. ТС похоже и ответить даже хочет.
  11. Вакансия еще актуальна? Совмещенка или удаленка возможна?