ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
834178
rual (23.04.2018 09:59 - 10:28, просмотров: 489)
SAM3 USART+PDC: хост-контроллер SAM3X8C обменивается со слейвом по усарт, перед приемом конфигурирует усарт и PDC, после чего выставляет на пине готовность к приему. проблемка следующая, почему прием стартует с задержкой и хост не успевает словить пакет? init Usart().get()->US_MR = /*US_MR_USART_MODE_RS485 | */ US_MR_CHRL_8_BIT | US_MR_PAR_NO; Usart().get()->US_BRGR = SystemCoreClock / 16 / m_boudrate; Usart().get()->US_RTOR = RECEIVE_TIMEOUT_TIME; Usart().get()->US_CR = US_CR_RSTRX | US_CR_RSTTX; Usart().get()->US_CR = US_CR_TXEN; //start_receiving(); } void start_receiving(uint8_t* buf, size_t len) { Usart().disable_irq(); Usart().get()->US_CR = US_CR_RSTRX; Usart().get()->US_RPR = (uint32_t)buf; Usart().get()->US_RCR = len; Usart().get()->US_PTCR = US_PTCR_RXTEN; Usart().get()->US_CR = US_CR_RXEN | US_CR_RETTO; // enable rx and rx time-out Usart().get()->US_IER = US_IER_TIMEOUT; Usart().clear_pending_irq(); //Usart().enable_irq(); } ... процесс start_receiving((uint8_t*)&rx_pack_buf1,sizeof rx_pack_buf1); /// прием инициализируется раньше выставления пина готовности!!! set_MR(); ...