Jump to content

    

andrew_by

Участник
  • Content Count

    12
  • Joined

  • Last visited

Everything posted by andrew_by


  1. линукс это гуд , насчет связки sd-wifi <-> wifi - малина -lte .. нахрена wifi мост? .. он лишний уж точно понимаю)
  2. ..так я ж написал от 5 ) .. к тому же это только за труд .. детали не в счет!
  3. связку Wifi хочу убрать ... хочу сразу фотку слать через LTE .. категорично ) .. уже и денег готов отсыпать от 5к руб
  4. Так это же порнуха))) .. неужели нельзя реализовать также как это сделано у ezShare модуля
  5. вот и я понимаю что гимор .. но вот есть адаптеры типа EzShare которые как раз такую шнягу делают, но мне охота что бы картинка слалась через LTE а не через Wi-fi .. к тому же Ezshare не может слать на почту или что-то еще.. вобщем слишком тупой - а мне охота свою логику отправки фотки написать не могу... нужно грабить фотки именно с устройства
  6. raspberry + microsd

    итак есть ус-во , которое 1раз в 5сек делает фото и кладет себе на карточку микросд, хочу вместо карточки подключить малинку , а в малинку уже подключить карточку микросд, задача - нужно чтобы фотки клались на микросд через малинку , а когда фотка записана, малинка считывала ее и отправляла по wi-fi мне эту фотку на почту.. как сделать такой адаптер? кто поможет - можно не бесплатно
  7. прошивка приаттачена в первом посте my.zip
  8. это то понятно ... что залить и запустить... вот только по какому адресу класть прошивку или это неважно?? (спрашиваю потому-что такое никогда не делал)
  9. товарищи, подскажите плз есть stm32f427 и есть к нему прошивка , но к этой прошивке нужен еще бутлоадер, который при загрузке как полагаю кладет прошивку по нужному адресу. Можно ли прошивку положить тупо со сдвигом и запустить ее работать . Или есть какие нить симуляторы 427 го ? . если кого напрягает бесплатная помощь) оплату можем обсудить .. в итоге хочу хоть каким то способом запустить прошивку на 427 камне и подключить к нему дебаг для наблюдения за поведением проца my.zip
  10. есть три устройства, у всех разные процы, у них у всех стоят CAN-драйверы MAX3051 .. 1ы1 и 2ой девайсы отлично вяжутся по Кану и работают... подключаю вместо второго треттий.. все валится. по шине идут только импульсы частотой 38.65кГц в чем загвоздка ? ессно обвязка у драйверов одинаковая ) резюки 120Ом стоят на обоих концах линии.. линия длинной 50см.
  11. народ подскажите кто знает, в чем может быть косяк... соединяю STM32f405 и LPC11c24 , у СТМки кан драйвер использую MAX3051 , у LPC драйвер встроенный . проблема вот в чем - при отправке сообщения от STM, LPC принимает и тут же его ретранслирует. Но! когда вместо STM ставлю другой модуль - STM32f427 c кан драйвером SN65HVD230Q, то ретраснляции не происходит ивсе работает нормально.. как избавиться от ретрансляции со стороны LPC код пишу в Keil.
  12. товарищи.. нужно допилить код.. но сам уже запутался.. помогите кто чем может ) суть такая.. есть 2 устройства с UART , я в разрыв вставляю Дисковери и хочу что бы все данные которые шли от устр1 шли без оработки к устр2 , а данные от устр2 заходили на Дисковери и если пакет данных соответсвует условию.. то посылались б другие , а если нет .. то также просзрачно слались бы.. или натолкните на правильный пример .. #include "main.h" uint16_t delay_count=0; uint8_t Mode=0; uint16_t Mode_count=0; uint8_t Mode_new=0; uint8_t Button_count=0; uint8_t Button_state=0; char GetData10[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0xD3,0xDF}; char DataOtvet1[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAB,0x1A}; char GetData20[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x2e,0x92}; char DataOtvet2[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x01,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0xC0,0x2F,0x00,0x00,0x00,0x00,0xAA,0x5B}; char GetData30[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x29,0x44}; char DataOtvet3[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x02,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xAC}; char GetData40[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0xD4,0x09}; char DataOtvet4[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x03,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0xC0,0x2F,0x00,0x00,0x00,0x00,0x17,0xED}; char GetData50[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0xA8,0x8E}; char DataOtvet5[] = {0x55,0x1C,0x00,0x7A,0xA0,0x01,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAB,0x1A}; char GetData21[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x55,0xc3}; char GetData60[] = {0x55,0x0D,0x04,0x33,0x03,0x0c,0x01,0x00,0x40,0x00,0x01,0xC3,0x41}; char DataOtvet6[] = {0x55,0x2B,0x04,0x58,0x0c,0x03,0x01,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00 , 0x01,0x00,0x00,0x0a,0x01,0xad,0x9f,0x01,0x04,0x4d,0x8c}; char GetData70[] = {0x55,0x0D,0x04,0x33,0x03,0x2c,0x02,0x00,0x40,0x00,0x01,0x6f,0xd9}; char DataOtvet7[] = {0x55,0x2B,0x04,0x58,0x2c,0x03,0x02,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00 , 0x01,0x00,0x00,0x0a,0x01,0xbe,0x59,0x01,0x04,0xae,0x53}; char GetData80[] = {0x55,0x0D,0x04,0x33,0x03,0x4c,0x03,0x00,0x40,0x00,0x01,0x9a,0x55}; char DataOtvet8[] = {0x55,0x2B,0x04,0x58,0x4c,0x03,0x03,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00 , 0x01,0x00,0x00,0x0a,0x01,0xc1,0xe2,0x01,0x04,0x57,0x0a}; char GetData90[] = {0x55,0x0D,0x04,0x33,0x03,0x6c,0x04,0x00,0x40,0x00,0x01,0x26,0xe0}; char DataOtvet9[] = {0x55,0x2B,0x04,0x58,0x6c,0x03,0x04,0x00,0xc0,0x00,0x01,0x00,0x10,0x58,0x43,0x4f ,0x52,0x45,0x5f,0x45,0x53,0x43,0x5f,0x56,0x78,0x00,0x00,0x00,0x00,0x02,0x02,0x00 , 0x01,0x00,0x00,0x0a,0x01,0xdb,0x38,0x01,0x04,0x05,0x38}; char GetData11[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0xa8,0x8e}; char GetData31[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x52,0x15}; char GetData41[] = {0x55,0x12,0x00,0xA6,0xA0,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0xaf,0x58}; struct CMsg { char * In; char * Out; int SizeIn; int SizeOut; }; void Init ( struct CMsg * msg , char * in, int size_in, char * out, int size_out ) { msg -> In = in; msg -> Out = out; msg -> SizeIn = size_in; msg -> SizeOut = size_out; } struct CMsg Messages [ 13 ]; //---------------------------------------------- // //---------------------------------------------- void SysTick_Handler(void)//1ms { } //---------------------------------------------- // //---------------------------------------------- void delay_ms(uint16_t delay_temp) { delay_count = delay_temp; while(delay_count){} } //---------------------------------------------- // //---------------------------------------------- void SendStrtoPC(char* str_p, uint16_t count) { uint16_t i=0; while(i < count) { while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET){} USART_SendData(USART2, str_p[i]); i++; } } char ReadByte (void ) { while(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET){} return USART_ReceiveData ( USART2 ); } void loop() { char cur; char msg_len; char Buffer [ 256 ]; int i = 0 ,j=0, Valid; do { cur = ReadByte (); Buffer [ 0 ] = cur; } while ( cur != 0x55); msg_len = ReadByte (); Buffer [ 0 ] = 0x55; Buffer [ 1 ] = msg_len; for ( i = 2; i != msg_len; ++i ) { Buffer [ i ] = ReadByte (); } for ( i = 0; i != sizeof ( Messages ) / sizeof ( struct CMsg); ++i ) { if ( Messages [ i ].SizeIn != msg_len ) continue; Valid = 1; for ( j = 0; j != msg_len; ++j ) { if ( Messages [ i ].In [ j ] != Buffer [ j ] ) { Valid = 0; break; } } if ( Valid ) { for ( j = 0; j != Messages [ i ].SizeOut; ++j ) { while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET) {} USART_SendData(USART2, Messages [ i ].Out [ j ] ); } return; // reply sent } } } int main(void) { Init ( &Messages [0], GetData10, sizeof (GetData10), DataOtvet1, sizeof (DataOtvet1) ); Init ( &Messages [1], GetData11, sizeof (GetData11), DataOtvet1, sizeof (DataOtvet1) ); Init ( &Messages [2], GetData20, sizeof (GetData20), DataOtvet2, sizeof (DataOtvet2) ); Init ( &Messages [3], GetData21, sizeof (GetData21), DataOtvet2, sizeof (DataOtvet2) ); Init ( &Messages [4], GetData30, sizeof (GetData30), DataOtvet3, sizeof (DataOtvet3) ); Init ( &Messages [5], GetData31, sizeof (GetData31), DataOtvet3, sizeof (DataOtvet3) ); Init ( &Messages [6], GetData40, sizeof (GetData40), DataOtvet4, sizeof (DataOtvet4) ); Init ( &Messages [7], GetData41, sizeof (GetData41), DataOtvet4, sizeof (DataOtvet4) ); Init ( &Messages [8], GetData50, sizeof (GetData50), DataOtvet5, sizeof (DataOtvet5) ); Init ( &Messages [9], GetData60, sizeof (GetData60), DataOtvet6, sizeof (DataOtvet6) ); Init ( &Messages [10], GetData70, sizeof (GetData70), DataOtvet7, sizeof (DataOtvet7) ); Init ( &Messages [11], GetData80, sizeof (GetData80), DataOtvet8, sizeof (DataOtvet8) ); Init ( &Messages [12], GetData90, sizeof (GetData90), DataOtvet9, sizeof (DataOtvet9) ); SysTick_Config(SystemCoreClock/1000);//1 ms USART2_ini(); while(1) { loop (); } } это код когда есть только устр1 и дисковери .. устр1 шлет пакеты, дисковери смотрит если находит у себя в списке похожий то выдает ответ, если не находит то молчит.