zaicev_ekb
-
Постов
34 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные zaicev_ekb
-
-
16 hours ago, Сергей Борщ said:
Не выставляется или вы не попадаете в последнее условие, потому что флаг сбрасывается после чтения SR и DR в первом условии? Полагаю, что все же второе. Я не знаком с кубом, но внимательно читаю документацию на контроллер и его регистры. Из этой документации становится понятно, что ваш обработчик написан неправильно:
1) Нужно один раз в начале обработчика считать регистр статуса и потом во всех условиях работать со считанным значением, а не теребить SR при проверке каждого флага, как это делают недалекие авторы куба.
2) Многие биты в этом регистре сбрасываются автоматически чтением DR после чтения SR и вызов USART_ClearITPendingBit на них никоим образом не влияет.
Читайте справочное руководство (reference manual) на контроллер, а не только названия функций в кубе.
Сергей спасибо за критику. Го это не HAL а SPL.
Сделано как описывают сами ST в своем референсе.
Даташит тоже читаю, и еррату тоже.
За замечание еще раз спасибо.
Буду пробовать.
И в Кале перед функциями стоит префикс HAL. Халом я тоже не пользуюсь.
-
On 7/7/2020 at 10:09 AM, haker_fox said:
Логический анализатор на линии? Всё покажет сразу.
Только на уровень физики и канала (по модели OSI);
Сергей вопрос в продолжение
Конфиг 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 не выставляется
-
29 minutes ago, Сергей Борщ said:
В сторону обработки ошибок по приему, например. Биты данных во всех посылках совпадают, биты четности для приемника с отключенной проверкой четности должны вызывать ошибку приема стопового бита (framing error). В вышей программе эта ошибка, вероятно, не обрабатывается. А поскольку биты данных во всех форматах совпадают - посылка принимается правильно.
Спасибо за волщебный пендель
буду копать
-
Опубликовано · Изменено пользователем zaicev_ekb · Пожаловаться
-
Написал в почту
-
Такое ощущение что вы просто хотите набить свое портфолио чужими работами.
Сроки?
Оплата?
Или вы думаете что все кинуться к вам?
И будут наперебой предлагать?
-
Cбасибо за развернутый ответ.
За HardFault в курсе.
Я имел в виду unit тесты.
-
Доброго времени суток всем.
Кто как тестирует код под кейлом?
Если тему создал не такм где надо, просьба к админам перенести
-
Пишите в личку. Или оставьве свои координаты
-
elesy.ural гав-гав rambler.ru
-
Напишите в личку
-
ТЗ на elesy.ural собака rambler.ru скиньте
-
2 minutes ago, SZ0 said:
? Ничё не понял
Написал вам на указаное мыло, а в ответ тишина....
Видимо вам так нужны монтажники
-
ТС похоже и ответить даже хочет.
-
Обязанности:
-разработка ПО микроконтроллеров(STM32, AVR);
-разработка аппаратной части электронных узлов и блоков(цифровая техника, аналоговая техника);
-разработка документации (конструкторской или программной).
Требования:
-высшее образование и стаж работы 3-5 лет;
-опыт работы с аналоговой и цифровой схемотехникой;
-опыт разработки ПО микроконтроллеров на языке Си;
-знание основных интерфейсов UART, CAN, I2C, SPI;
Условия:
возможен гибкий график;
работа в центре около станции метро;
оформление и ЗП в соответствии с ТК РФ.
Оплата от 50 000р в месяц "белой на руки" стабильно.
Просим направить резюме с контактами.
или
или
+7 963 036 01 01
Вакансия еще актуальна?
Совмещенка или удаленка возможна?
-
Есть от 80к , а до скольки?
И под ваши требования нужен не один человек.
Если хотите под ваши требования, то от 150 к
-
Вы хотя бы фото плат приложите
-
спасибо за замечания. Учту в следующий раз. 2р не многовато ли за один файл описания? Возможно ли помочь сделать проект целиком? ТЗ будет чуточку позже
Плата должна по сети принимать пакеты, которые должна писать во флеш. По-хорошему на флешках должна быть файловая система, чтобы писать файлами. ОС использовать нельзя
Тогда предлагаю вам сначала определится со всеми хотелками - свистелками. И все это оформить в виде ТЗ. А потом уже можно говорить о сроках и деньгах.
-
прикрепил в формате pdf
2 рубля за файл хедер платы, при условии что будет небольшое ТЗ, что вы хотите от платы
-
Опубликовано · Изменено пользователем zaicev_ekb · Пожаловаться
А писать вам кудой? На деревню дедушке?
И работа как? За еду ?
И зачем прицеплять чистый лист , без схемы?
-
Ребята, пишу ТЗ. Пока беру паузу... Выложу в теме.
Как выложите скиньте на мыло elesy_ural собака rambler.ru
-
Для шахт вам нужен хороший схемотехник, со знанием вч
-
А чем OpenSCADA не устраивает?
-
По совместительству или удаленку рассматриваете?
MAX32660 и его компания
в TI, Allwinner, GigaDevice, Nordic, Espressif и другие
Опубликовано · Пожаловаться
Вопрос к ТС.
Со средой разработки разобрались?
Сам сейчас осваиваю MAX32520