Jump to content

    

Captain777

Участник
  • Content Count

    38
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Captain777

  • Rank
    Участник

Информация

  • Город
    Array

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Я бы Вам посоветовал поиграться вначале уже существующими WEB SDR. Например http://websdr.78dx.ru:8901/ 

    С их помощью можно и цифру послушать. Надо только перенаправить аудиопоток в спец программы.

    1. Ruslan1

      Ruslan1

      Огромное спасибо за наводку, даже не подумал про такое! 

      Их реально много! :)

  2. Настройка прерываний void NVIC_Config_CAN(void) { NVIC_InitTypeDef NVIC_InitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable FIFO 0 message pending Interrupt */ CAN_ITConfig(CAN1, CAN_IT_FMP0, ENABLE); NVIC_InitStructure.NVIC_IRQChannel = CAN1_RX1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable FIFO 1 message pending Interrupt */ CAN_ITConfig(CAN1, CAN_IT_FMP1, ENABLE); NVIC_InitStructure.NVIC_IRQChannel = CAN2_RX0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x1; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Enable FIFO 0 message pending Interrupt */ CAN_ITConfig(CAN2, CAN_IT_FMP0, ENABLE); Прием от машины всех ненужных пакетов - передача в приборку void CAN1_RX0_IRQHandler(void) { if (CAN_GetITStatus(CAN1, CAN_IT_FMP0) != RESET) { CAN_Receive(CAN1, CAN_FIFO0, &Can1RxMessage); // Читаем почту Can1TxMessage.StdId = Can1RxMessage.StdId; Can1TxMessage.ExtId = Can1RxMessage.ExtId; Can1TxMessage.RTR = Can1RxMessage.RTR; Can1TxMessage.IDE = Can1RxMessage.IDE; Can1TxMessage.DLC = Can1RxMessage.DLC; Can1TxMessage.Data[0] = Can1RxMessage.Data[0]; Can1TxMessage.Data[1] = Can1RxMessage.Data[1]; Can1TxMessage.Data[2] = Can1RxMessage.Data[2]; Can1TxMessage.Data[3] = Can1RxMessage.Data[3]; Can1TxMessage.Data[4] = Can1RxMessage.Data[4]; Can1TxMessage.Data[5] = Can1RxMessage.Data[5]; Can1TxMessage.Data[6] = Can1RxMessage.Data[6]; Can1TxMessage.Data[7] = Can1RxMessage.Data[7]; CAN_Transmit(CAN2, &Can1TxMessage); InitCan1RxMessage (); } } Прием нужных для изменения ID и отправка в приборку void CAN1_RX1_IRQHandler(void) { if (CAN_GetITStatus(CAN1, CAN_IT_FMP1) != RESET) { CAN_Receive(CAN1, CAN_FIFO1, &Can1Fifo1RxMessage); Can1Fifo1TxMessage.StdId = Can1Fifo1RxMessage.StdId; Can1Fifo1TxMessage.ExtId = Can1Fifo1RxMessage.ExtId; Can1Fifo1TxMessage.RTR = Can1Fifo1RxMessage.RTR; Can1Fifo1TxMessage.IDE = Can1Fifo1RxMessage.IDE; Can1Fifo1TxMessage.DLC = Can1Fifo1RxMessage.DLC; Can1Fifo1TxMessage.Data[0] = Can1Fifo1RxMessage.Data[0]; Can1Fifo1TxMessage.Data[1] = Can1Fifo1RxMessage.Data[1]; Can1Fifo1TxMessage.Data[2] = Can1Fifo1RxMessage.Data[2]; Can1Fifo1TxMessage.Data[3] = Can1Fifo1RxMessage.Data[3]; Can1Fifo1TxMessage.Data[4] = Can1Fifo1RxMessage.Data[4]; Can1Fifo1TxMessage.Data[5] = Can1Fifo1RxMessage.Data[5]; Can1Fifo1TxMessage.Data[6] = Can1Fifo1RxMessage.Data[6]; Can1Fifo1TxMessage.Data[7] = Can1Fifo1RxMessage.Data[7]; Тут все считаем и CRC тоже Can1Fifo1TxMessage.Data[0] = CrcSea; Can1Fifo1TxMessage.Data[1] = CrcBuf[0]; Can1Fifo1TxMessage.Data[2] = CrcBuf[1]; // Фильтруемые байты Can1Fifo1TxMessage.Data[3] = CrcBuf[2]; Can1Fifo1TxMessage.Data[4] = CrcBuf[3]; Can1Fifo1TxMessage.Data[2] = 0x00; // Фильтруемые байты Can1Fifo1TxMessage.Data[3] = 0x00; } } CAN_Transmit(CAN2, &Can1Fifo1TxMessage); InitCan1Fifo1RxMessage (); } } Со стороны приборки - все проще void CAN2_RX0_IRQHandler(void) { if (CAN_GetITStatus(CAN2, CAN_IT_FMP0) != RESET) { CAN_Receive(CAN2, CAN_FIFO0, &Can2RxMessage); // Читаем почту // Can2TxMessage.StdId = Can2RxMessage.StdId; Can2TxMessage.ExtId = Can2RxMessage.ExtId; Can2TxMessage.RTR = Can2RxMessage.RTR; Can2TxMessage.IDE = Can2RxMessage.IDE; Can2TxMessage.DLC = Can2RxMessage.DLC; Can2TxMessage.Data[0] = Can2RxMessage.Data[0]; Can2TxMessage.Data[1] = Can2RxMessage.Data[1]; Can2TxMessage.Data[2] = Can2RxMessage.Data[2]; Can2TxMessage.Data[3] = Can2RxMessage.Data[3]; Can2TxMessage.Data[4] = Can2RxMessage.Data[4]; Can2TxMessage.Data[5] = Can2RxMessage.Data[5]; Can2TxMessage.Data[6] = Can2RxMessage.Data[6]; Can2TxMessage.Data[7] = Can2RxMessage.Data[7]; CAN_Transmit(CAN1, &Can2TxMessage); InitCan2RxMessage (); } }
  3. На HAL удалось только демоверсию сделать. В реальной машине (задача та же BMW G серия) получилось только на SPL. Поток данных от авто к панели значительно выше, чем в обратную сторону, поэтому правильно надо настроить приоритеты. Используйте два буфера FIFO - через один отправляете пакеты не фильтрованные, через второй по маске обрабатываете нужные ID. Не забываем про правильное вычисление контрольных сумм. Могу сказать, что задача эта далеко не такая простая - как кажется на первый взгляд.
  4. Мне кажется maniac имеет ввиду, что программатор прекрасно записывает данные в этот чип. Для этого Vpp должно быть 12 вольт. Но он ничего не говорил про стирание. А для чего подняли этот некропост?
  5. Так а нельзя спросить там где покупаете? Вот один из продавцов кабеля прямо пишет про инструмент : "Для СВЧ кабеля MULTIFLEX 86-04 компания HUBER+SUHNER предлагает широкую гамму соединителей и необходимый для их монтажа инструмент."
  6. Operating temperature range -40 +85 °C Storage temperature range -55 +150 ° В декабре пришлось перейти на GD32F105. 4 000 устройств продано. Пока отказов не было. В Питере Элтех ими занимается.
  7. Вам надо иметь минимум два устройства с трансиверами, что бы в таком режиме работало. Пока физически шины не будет - ничего не заработает. Это не UART.
  8. https://developer.arm.com/documentation/ka004235/latest Вроде тут про это пишут.
  9. Если не ошибаюсь, это называется "анизотропная токопроводящая резина".
  10. Согласен. Но удалось купить только в этом корпусе.
  11. UFQFPN-48 есть. USB + 2 CAN FD. Передо мной лежат. На моузер покупал.