ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
29 июня
245603
der student (30.03.2011 08:21 - 10:33, просмотров: 5129)
USART в хмеге. Нихрена не понятно Мне нужно 6 uart. Выбрал демо-платку с хмегой (128а1). Запустил демо-пример с одним uart - работает. Дальше по образу и подобию добавляю второй uart в программу - перестает работать то, что работало только что. Методом тыка обнаруживаю что проблема выглядит вот так:
USART_Baudrate_Set(&USART, 11, -1); //19200
//USART_Baudrate_Set(&USART_bopi2, 12 , 0); //кривые данные из-за этой строки //нужно эту строчку перенести в другое место
	 
Т.е. от перестановки слагаемых сумма таки меняется. Настроил каждый uart отдельно - работает. Отдельно - это значит USART_InterruptDriver_Initialize(xxx); USART_Format_Set(xxx); USART_RxdInterruptLevel_Set(xxx); USART_Baudrate_Set(xxx); USART_Rx_Enable(xxx); USART_Tx_Enable(xxx); Для одного usart, потом тоже самое для следующего. Теперь вот сочиняю прогу. Краткая выдержка :-) #define USART_bopi1 USARTF1 //порт подключения БОПИ 1 #define USART_bopi2 USARTF0 //порт подключения БОПИ 2 #define USART_bopi3 USARTE1 //порт подключения БОПИ 3 #define USART_bopi4 USARTD0 //порт подключения БОПИ 4 #define USART_modem USARTD1 //порт подключения модема #define USART USARTE0 //порт подключения ПК Все настраивается одинаково. USART_bopi4 нихрена не работает, все работает, а он - нет. В буфере одни нули. Данные идут (перекидывал шлейфы). В связи с печальным опытом (см. выше) даже не знаю, что думать. Кто-нибудь задействовал 6 UART в хмеге? Попробую скачать последний winavr еще. В общем, буду благодарен за любые идеи как победить эту скорбь