Фрикер Клуб
 

Вернуться   Фрикер Клуб > Основной раздел > Кодграбберы

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 01.04.2018, 10:47   #141
EPA
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,326
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Цитата:
Сообщение от skorpionm
Но на самом деле там все просто...... Самое сложное это разбор приёма.... Там хоть и 3-х этажно, но если понимать как он кадирован то не сложно разобраться.....
Вот например где там взрыв мозга?

Когда более-менее разберёшься , то конечно потом кажется что оказывается не так всё сложно.
Я попробую тебе ответить на твой вопрос о взрыве мозга:
Как гласит народная мудрость и подпись модератора DIVER_SANT'а: "Правильно поставленный вопрос- это наполовину полученный ответ".
А когда человек, который не родился с паяльником в руках и с книгой "Всё о Радио" в зубах, он в поисках ответов на начальном этапе даже не может чётко сформулировать вопрос. Допустим утрирую: Для него слова Модуляция и Маструбация звучат как синонимы, а ведь на самом деле Маструбация - это вид Медитации в режиме Амплитудной Модуляции. Но этого он пока не знает.
Соответсвенно, сёрфинг по гуглу не даёт нужных результатов, он теряется в куче ссылок, либо вообще не там ищет. В итоге - это потерянное время и взрыв мозга. У меня допустим был Перелом Мозга ))))

Добавлено через 1 час 29 минут
ЗЫ. А когда знаешь что и где искать, то как сказал наш форумчанин, то можно найти исходники даже на определенную штатку авто, которые лежат в открытом виде, сэкономив себе кучу времени и муйнёй не страдать. Но до этого полюбасу придётся изобретать парк велосипедов и зелёнкой смазывать шишки на голове от граблей.
EPA вне форума   Ответить с цитированием
Старый 02.04.2018, 01:43   #142
aka_k4
Резидент клуба
 
Аватар для aka_k4
 
Регистрация: 29.06.2011
Сообщений: 113
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Цитата:
Маструбация - это вид Медитации в режиме Амплитудной Модуляции

это сильно было сказано, предлогаю внести данное изречение в шапку форума
aka_k4 вне форума   Ответить с цитированием
Старый 06.05.2018, 18:57   #143
Vasya Pupkin
Вступил в клуб
 
Регистрация: 04.03.2013
Сообщений: 13
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Доброго времени комрады.

Что-то я в тупик зашел с отправкой.
Разобрался с параметрами cc1100, разобрался с составом и наполнением меню.
Но мазахака, не могу осилить посыл.

Вот кусок menu.c в который я пытался впхнуть сразу нужные мне посылы came, #include "came.h" добавлен.

-=кусь=-
case SEND_MEM1: {
Send_CAME (4095,12,4); //key, bit,repeat
break;
}
case SEND_MEM2: {
Send_CAME (0x555,12,4);
break;
}
-=кусь=-

Готов принять пинок в нужную сторону и тем паче информацию.
Vasya Pupkin вне форума   Ответить с цитированием
Старый 08.05.2018, 06:25   #144
EPA
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,326
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

ТС редко ныряет, это я о том, что эксклюзивного пинка придётся долго ждать. У тебя конкретно в чем пробла в увравлении меню или в send_Came? Твой кусь... кусь без начало и конца не о чем не говорит, остаёться тока догадываться , а так бы я с удовольствием указал бы нужное направление с помощью пендаля
EPA вне форума   Ответить с цитированием
Старый 08.05.2018, 07:44   #145
Vasya Pupkin
Вступил в клуб
 
Регистрация: 04.03.2013
Сообщений: 13
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Ок попробую коротенько, как я это понимаю, каюсь чукча не писатель.

Описание протокола саме, по идее не суть важно.
Описание содержит функцию, при подстанове переменных к которой, имеем на выходе то, что имеем.

Код:
#include "came.h"
#include <string.h>
//#include "stm32f1xx_hal.h"
#include "433Modem.h"
#include "dwt_stm32_delay.h"

extern UART_HandleTypeDef huart1;
extern 	char BufTX [100];

ProtocolStruct CAME;

void Init_CAME (void){
snprintf(CAME.Name_Protocol , sizeof(CAME.Name_Protocol ),"CAME");
CAME.MIN_Count_BIT = 8;
CAME.Interval_SMALL = 320;
CAME.Interval_LONG =640;	
CAME.Interval_DELTA = 100;
}

void Send_Bit_CAME (uint8_t bit){
	if (bit) {
		Pin_TX(0);
		DWT_Delay_us(CAME.Interval_LONG); //1
		Pin_TX(1);
		DWT_Delay_us(CAME.Interval_SMALL);	
	} else {
		Pin_TX(0);
		DWT_Delay_us(CAME.Interval_SMALL); //0
		Pin_TX(1);
		DWT_Delay_us(CAME.Interval_LONG);	
	}
}	


void Send_CAME (uint64_t key, uint8_t bit, uint8_t repeat){
	
	
snprintf(BufTX, sizeof(BufTX),"I'AM A LIVE! \n\r");
HAL_UART_Transmit (&huart1, (uint8_t*) BufTX, strlen(BufTX),1000);

	
Pin_TX_EN(1);
while(repeat--){
	Send_Bit_CAME(1); //START
  for (uint8_t i=bit;i>0;i--){        
  Send_Bit_CAME(bitRead(key, i-1)); 
		}
	Pin_TX(0);
	DWT_Delay_us(CAME.Interval_SMALL*34);	 //+2 interval v bit 1 	
	}
Pin_TX_EN(0);
}

void Analysis_bit_CAME (Tbuf data){
	switch (CAME.State){ 
		case 0:{
			if ((data.Status == 0) && ((data.Time >= (CAME.Interval_SMALL*35 - CAME.Interval_DELTA)) && (data.Time <= (CAME.Interval_SMALL*55 + CAME.Interval_DELTA)))){
			CAME.State=1; //Find Preambula
			} else CAME.State=0;
		}
		break;
		case 1:{
			 if (data.Status == 0) {
					break;
			 }else if ((data.Time >= (CAME.Interval_SMALL - CAME.Interval_DELTA)) && (data.Time <= (CAME.Interval_SMALL + CAME.Interval_DELTA))){
				CAME.State=2; //Find 1 level
				 CAME.Code=0;
				 CAME.Count_BIT=0;
			 } else CAME.State=0;	
		 }
		break;
		case 2:{
			if (data.Status==0 ) { //save interval
				if (data.Time >= (CAME.Interval_SMALL*2 + CAME.Interval_DELTA)){
				CAME.State=1;
			   if (CAME.Count_BIT >=CAME.MIN_Count_BIT) {
					 Print_Code(&CAME);
					Print_Code_LCD(&CAME ,0,0);
				 }
					 break;
				}
			CAME.Last_Time_Itnetval=data.Time;	
			CAME.State=3;
			} else CAME.State=0;
		}
		break;
		case 3:{
			if (data.Status==1){
				if (Check_Interval(&CAME, CAME.Interval_SMALL, CAME.Last_Time_Itnetval) && Check_Interval(&CAME, CAME.Interval_LONG, data.Time)){
							 Add_Bit(&CAME,0);
							 CAME.State=2;
						 } else if (Check_Interval(&CAME,CAME.Interval_LONG,CAME.Last_Time_Itnetval) && Check_Interval(&CAME,CAME.Interval_SMALL, data.Time)){
											 Add_Bit(&CAME,1);
											 CAME.State=2;
										 }else CAME.State=0;
			} else CAME.State=0;
		}
	}
}
Vasya Pupkin вне форума   Ответить с цитированием
Старый 08.05.2018, 07:48   #146
Vasya Pupkin
Вступил в клуб
 
Регистрация: 04.03.2013
Сообщений: 13
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Так же имеем описание меню в котором используем функцию посыла с необходимыми нам переменными.
Но далее лыжи не едут, приемник посылку не регестрирует =(
Хотя тот же брут описанный в меню пердолит в эфир, дай боже.


Код:
#include "Fun_Menu.h"
#include "menu.h"
#include "fonts.h"
#include "ssd1306.h"
#include "433Modem.h"
#include "CC1101.h"
#include "came.h"


//extern BRUT Brut;


typedef struct {
	void       *Next;
	void       *Previous;
	void       *Parent;
	void       *Child;
	uint8_t     Select;
	const char  Text[20];
} menuItem;

menuItem* selectedMenuItem; // Tekushee menu
char* ParentText[20];

//menuItem* menuStack[10];
//volatile uint8_t menuStackTop;


#define MAKE_MENU(Name, Next, Previous, Parent, Child, Select, Text) \
  extern menuItem Next;     \
	extern menuItem Previous; \
	extern menuItem Parent;   \
	extern menuItem Child;  \
	menuItem Name = {(void*)&Next, (void*)&Previous, (void*)&Parent, (void*)&Child, (uint8_t)Select, { Text }}


#define PREVIOUS   ((menuItem*)(selectedMenuItem->Previous))
#define NEXT       ((menuItem*)(selectedMenuItem->Next))
#define PARENT     ((menuItem*)(selectedMenuItem->Parent))
#define CHILD      ((menuItem*)(selectedMenuItem->Child))
#define SELECT		 ((selectedMenuItem->Select))
 
	
char strNULL[] = "";

#define NULL_ENTRY Null_Menu
menuItem        Null_Menu = {(void*)0, (void*)0, (void*)0, (void*)0, 0, {0x00}};

//                 NEXT,      PREVIOUS     PARENT,     CHILD
MAKE_MENU(m_s1i1,  m_s1i2,    NULL_ENTRY,  NULL_ENTRY, m_s2i1,       0, "Work");
MAKE_MENU(m_s1i2,  m_s1i3,    m_s1i1,      NULL_ENTRY, m_s3i1,       0, "Settings");
MAKE_MENU(m_s1i3,  m_s1i4,    m_s1i2,      NULL_ENTRY, NULL_ENTRY,   MENU_RESET, "Reset");
MAKE_MENU(m_s1i4,  NULL_ENTRY,m_s1i3,      NULL_ENTRY, m_s8i1,       0, "Send");

// Start Work
MAKE_MENU(m_s2i1,  m_s2i2,    NULL_ENTRY,  m_s1i1,     NULL_ENTRY,   MENU_SCAN_ON, "Scan_ON");
MAKE_MENU(m_s2i2,  m_s2i3, 		m_s2i1,      m_s1i1,     NULL_ENTRY,   MENU_SCAN_OFF, "Scan_Off");
MAKE_MENU(m_s2i3,  NULL_ENTRY,m_s2i2,      m_s1i1,     m_s5i1,   0, "Bruteforce");
//MAKE_MENU(m_s2i4,  NULL_ENTRY,m_s2i3,      m_s1i1,     NULL_ENTRY,   NOISE, "Noise");

// Settings MENU
MAKE_MENU(m_s3i1,  NULL_ENTRY,NULL_ENTRY,  m_s1i2,     m_s4i1,       0, "Frequency");
//MAKE_MENU(m_s3i2,  NULL_ENTRY,m_s3i1,      m_s1i2,     NULL_ENTRY,       PINCODE, "Pin");


//                 NEXT,      PREVIOUS     PARENT,     CHILD
//SEND_MEM
MAKE_MENU(m_s8i1,  m_s8i2,	NULL_ENTRY,    m_s1i4,     NULL_ENTRY,   SEND_MEM1, "Garage");
MAKE_MENU(m_s8i2,  m_s8i3,    m_s8i1,  		 m_s1i4,     NULL_ENTRY,   SEND_MEM2, "Da4a");
MAKE_MENU(m_s8i3,  m_s8i4,		m_s8i2,      m_s1i4,     NULL_ENTRY,   SEND_MEM3, "Rabota");
MAKE_MENU(m_s8i4,  m_s8i5,		m_s8i3,      m_s1i4,     NULL_ENTRY,   SEND_MEM4, "Test");
MAKE_MENU(m_s8i5,  NULL_ENTRY,m_s8i4,      m_s1i4,     NULL_ENTRY,   SEND_MEM5, "Test1");


void menuChange(menuItem* NewMenu)
{
	if ((void*)NewMenu == (void*)&NULL_ENTRY)
	  return;
  //ParentText =((char *)NewMenu->Text);
	selectedMenuItem = NewMenu;
}


char* menuText(int8_t menuShift)
{
	int8_t i;
	menuItem* tempMenu;
 
	if ((void*)selectedMenuItem == (void*)&NULL_ENTRY)
	  return strNULL;
 
	i = menuShift;
	tempMenu = selectedMenuItem;
	if (i>0) {
		while( i!=0 ) {
			if ((void*)tempMenu != (void*)&NULL_ENTRY) {
				tempMenu = (menuItem*)(tempMenu->Next);
			}
			i--;
		}
	} else {
		while( i!=0 ) {
			if ((void*)tempMenu != (void*)&NULL_ENTRY) {
				tempMenu = (menuItem*)(tempMenu->Previous);
			}
			i++;
		}
	}
 
	if ((void*)tempMenu == (void*)&NULL_ENTRY) {
		return strNULL;
	} else {
		return ((char *)tempMenu->Text);
	}
}


void dispMenu(void) {
	char buf[25];
	
	SSD1306_Fill(SSD1306_COLOR_BLACK);
	      Show_Status();
				SSD1306_GotoXY(50,0);
				SSD1306_Puts("MENU", &Font_7x10, SSD1306_COLOR_WHITE);
	      SSD1306_DrawLine(0,10,128,10,SSD1306_COLOR_WHITE);
	
 		    snprintf(buf, sizeof(buf), "%s",menuText(-2)); 	
	      SSD1306_GotoXY(40,12);
				SSD1306_Puts(buf, &Font_7x10, SSD1306_COLOR_WHITE);
	
				snprintf(buf, sizeof(buf), "%s",menuText(-1)); 	
	      SSD1306_GotoXY(40,22);
				SSD1306_Puts(buf, &Font_7x10, SSD1306_COLOR_WHITE);
	
				snprintf(buf, sizeof(buf), ">>%s<<",menuText(0)); 	
	      SSD1306_GotoXY(26,32);
				SSD1306_Puts(buf, &Font_7x10, SSD1306_COLOR_WHITE);
		    
	
	      snprintf(buf, sizeof(buf), "%s",menuText(1)); 	
	      SSD1306_GotoXY(40,42);
				SSD1306_Puts(buf, &Font_7x10, SSD1306_COLOR_WHITE);
				snprintf(buf, sizeof(buf), "%s",menuText(2)); 	
	      SSD1306_GotoXY(40,52);
				SSD1306_Puts(buf, &Font_7x10, SSD1306_COLOR_WHITE);
	
	SSD1306_UpdateScreen(); 

}


uint8_t selectMenu(uint8_t par) {
	switch (par) {
	case MENU_SCAN_ON: { 
		Tim_Init(1);
		CC1101_Strobe(SRX);
		SCAN_(1);
		//selectedMenuItem = (menuItem*)&m_s1i1;
		break;
	}
	case MENU_SCAN_OFF: { 
	  Tim_Init(0);
		CC1101_Strobe(SIDLE);
		SCAN_(0);
		//selectedMenuItem = (menuItem*)&m_s1i1;
		break;
	}
	case C8_bit: {
		Brut.algo=1;
		Brut.bit=8;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case C12_bit: {
		Brut.algo=1;
		Brut.bit=12;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case C16_bit: {
		Brut.algo=1;
		Brut.bit=16;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case C20_bit: {
		Brut.algo=1;
		Brut.bit=20;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case C24_bit: {
		Brut.algo=1;
		Brut.bit=24;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case C28_bit: {
		Brut.algo=1;
		Brut.bit=28;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case C32_bit: {
		Brut.algo=1;
		Brut.bit=32;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case SENDCAME: {
		Brut.algo=1;
		//Brut.bit=32;
		Brut.repeat=4;
		Brut.status=1;
		SendCode();
		break;
	}
	case SENDNICE: {
		Brut.algo=2;
		//Brut.bit=32;
		Brut.repeat=4;
		Brut.status=1;
		SendCode();
		break;
	}
		case N8_bit: {
		Brut.algo=2;
		Brut.bit=8;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case N12_bit: {
		Brut.algo=2;
		Brut.bit=12;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case N16_bit: {
		Brut.algo=2;
		Brut.bit=16;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case N20_bit: {
		Brut.algo=2;
		Brut.bit=20;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case N24_bit: {
		Brut.algo=2;
		Brut.bit=24;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case N28_bit: {
		Brut.algo=2;
		Brut.bit=28;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	case N32_bit: {
		Brut.algo=2;
		Brut.bit=32;
		Brut.repeat=4;
		Brut.status=1;
		BruteForce();
		break;
	}
	
		case SEND_MEM1: {
		Send_CAME (4095,12,4); //key, bit,repeat
		break;
	}
		case SEND_MEM2: {
		Send_CAME (0x555,12,4); 
		break;
	}
		case SEND_MEM3: {
		Send_CAME (0x222,12,4); 
		break;
	}
		case SEND_MEM4: {
		Send_CAME (0x111,12,4); 
		break;
	}
		case SEND_MEM5: {
		Send_CAME (0x333,12,4); 
		break;
	}
//	case BRUTEFORCECAME: {
//		Brut.algo=1;
//		Brut.bit=12;
//		Brut.code=0xFF;
//		Brut.repeat=3;
//		Brut.status=1;
//		//BruteForce(1);
//		break;
//	}
//	case BRUTEFORCENICE: {
//		
//		break;
//	}
	//case NOISE: { 
		
		//break;
	//}
	case FREQAM433: { 
		CC1101_Config(AM_433);
		CC1101_Strobe(SRX);
		SCAN_(1);
		break;
	}
	case FREQFM433: { 
		CC1101_Config(FM_433);
		CC1101_Strobe(SRX);
		SCAN_(1);
		break;
	}
		case FREQAM434: { 
		CC1101_Config(AM_434);
		CC1101_Strobe(SRX);
		SCAN_(1);
		break;
	}
	//case PINCODE: { 
		
		//break;
	//}
//	case MENU_MODE3: { // ??? ?????????? ????? ?????? Mode 3
//		
//		break;
//	}
	case MENU_RESET: { // ??? ?????????? ????? ?????? Reset
	NVIC_SystemReset();
		break;
	}
	// ... ? ??? ????? ?? ???? ???????
	}

	// ????? ?????? ???????????? ? ??????? ????.
	//startMenu();
	return 1;
}

void Check_KEY_Menu(uint8_t key){
	switch (key){
		case KEY_OK:
			if (SELECT) {
				//START FUN
				selectMenu(SELECT);
				return ;
			} else {
				menuChange(CHILD);	
		} 
			break;
		case KEY_UP:
			menuChange(PREVIOUS);
			break;
		case KEY_DOWN:
			menuChange(NEXT);
			break;
		case KEY_LEFT:
			menuChange(PARENT);
			break;
		case KEY_RIGTH:
			menuChange(CHILD);
			break;
		
			
	}
	dispMenu();
}


uint8_t startMenu(void){
	selectedMenuItem = (menuItem*)&m_s1i1;
	dispMenu();
	return (1);
}

void initMenu() {
	selectedMenuItem = (menuItem*)&m_s1i1;
	//dispMenu();
}
Даже попытки извратиться, не принесли плодов =(

Код:
		case SEND_MEM1: {
		Brut.algo=1;
		Brut.code=0xFFF;	
		Brut.bit=12;
		Brut.repeat=4;
		Brut.status=1;
				//Send_CAME (0xFFF,12,4); //key, bit,repeat
		break;
Vasya Pupkin вне форума   Ответить с цитированием
Старый 08.05.2018, 10:38   #147
EPA
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,326
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Не вдаваясь ПОКА в подробности кода, хотел уточнить : по твоим словам, как я понял, ты говоришь функция на пине ТХ правильно выпуливает пакет.А трансивер её не хочет обрабатывать. В таком случае встречные вопросы: 1) ты же гришь, что разобрался с работой транса? Как происходит режим переключения RX/TX режима, а так же что у тебя безпакетным режим и т.д...
2)как ты понимаешь, что транс ничего не выпуливает и/или не правильно выпуливает данные.
Чтоб в этих вопросах найти хотя-бы частичку ответа, необходимо не бежать вперед паровоза, а делать всё спокойно и самое главное последовательно.
Например: забыть весь вышеописанный код, написать простенький код передачи меандра в 1500мксек, типа глушилки.и посмотреть как она работает на практике. Если Усё в норме дальше копаем, в поисках ответа: где мля грабли?. Ну и так далее. то есть разбить задачу на более мелкие задачки и в них искать ответ.
EPA вне форума   Ответить с цитированием
Старый 08.05.2018, 14:47   #148
Vasya Pupkin
Вступил в клуб
 
Регистрация: 04.03.2013
Сообщений: 13
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Цитата:
Сообщение от EPA
Не вдаваясь ПОКА в подробности кода, хотел уточнить : по твоим словам, как я понял, ты говоришь функция на пине ТХ правильно выпуливает пакет.А трансивер её не хочет обрабатывать. В таком случае встречные вопросы: 1) ты же гришь, что разобрался с работой транса? Как происходит режим переключения RX/TX режима, а так же что у тебя безпакетным режим и т.д...
2)как ты понимаешь, что транс ничего не выпуливает и/или не правильно выпуливает данные.
Чтоб в этих вопросах найти хотя-бы частичку ответа, необходимо не бежать вперед паровоза, а делать всё спокойно и самое главное последовательно.
Например: забыть весь вышеописанный код, написать простенький код передачи меандра в 1500мксек, типа глушилки.и посмотреть как она работает на практике. Если Усё в норме дальше копаем, в поисках ответа: где мля грабли?. Ну и так далее. то есть разбить задачу на более мелкие задачки и в них искать ответ.

Похоже я не совсем корректно выразился, разобрался с "настройкой частот" трансивера.

Понимаю при помощи sdr.

В любом случае спасибо.
Vasya Pupkin вне форума   Ответить с цитированием
Старый 08.05.2018, 16:20   #149
EPA
Супер Модератор
 
Аватар для EPA
 
Регистрация: 01.11.2016
Сообщений: 1,326
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Цитата:
Сообщение от Vasya Pupkin
Похоже я не совсем корректно выразился, разобрался с "настройкой частот" трансивера.

Понимаю при помощи sdr.

В любом случае спасибо.

Вот здеся покури
https://radiokot.ru/circuit/digital/security/34/
По-моему лучшего мануала я не встречал.
EPA вне форума   Ответить с цитированием
Старый 08.05.2018, 17:13   #150
Vasya Pupkin
Вступил в клуб
 
Регистрация: 04.03.2013
Сообщений: 13
По умолчанию Re: анализатор + кодграбер (stm32f103c8t6+ssd1306+WL101-341)WL101-341

Цитата:
Сообщение от EPA
Вот здеся покури
https://radiokot.ru/circuit/digital/security/34/
По-моему лучшего мануала я не встречал.

За котоламповость спасибо почитаю, разобрался.
Волшебный пендель помог.

Трансивер на передачу всё-же надо включать

case SEND_MEM2: {
CC1101_Strobe(STX);
Send_CAME (0x555,12,4);
break;
}
Vasya Pupkin вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 01:42. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com