admin

admin 6 часов назад

+2
Репутация
3
Рейтинг

увы, я нет

но если i2c уже работает, попробуйте адаптировать существую библиотеку ардуины

Ну там есть обычная почта, China Post Airmail, доставка от ~10$.

Все равно получается дешевле и качественней, чем у местных производств.

Спасибо за комментарий.

Ознакомился с производственным циклом активированного угля в промышленности. Проще и надежнее всего купить готовый в следующий раз.

Автор видео указывал, что это получиться именно не активированный уголь, но такой, который можно сделать в походных условиях для целей фильтрации жидкостей, так что это я неправильно сослался.

когда 3 версия выйдет, то схема будет, а исходники и файлы производства выкладывать не думал 

Использовать CubeMX вместо CubeIDE

Там маленький динамик с катушкой, а не пьеза.

Спасибо!

Кусок кода с флагом исправлен.

Картинка с настройками АЦП исправлена.

У меня тоже есть такая платка:

https://cxemka.com/43-plata-razrabotchika-minif4-n...

B  это действительно так, для f4xx отличаются настройки несколько, проверил у себя в другом проекте:

Здравствуйте.

У этого чела есть на два канала ослик, называется HS102:

https://www.martinloren.com/hs-oscilloscopes/HS102...

Также есть и другой двухканальный:

https://refcircuit.com/articles/15-hs402-3-0-andro...

Должен работать, там нужно в ручном режиме давать разрешения и включить GPS.

Вот есть еще проект того же самого, проверил — рабочий.

Файлы:

byte_receive_JDY23.aia

byte_receive_JDY23.apk

не должно, докиньте конденсаторов и лучше попробовать другой модуль (из другой партии/ревизии), чтобы наверняка

без этого не работает

да, наглёж!

У меня на клоне работало, как раз было удобно для таких целей, т.к. для программирования CubeIDE без доп. настроек его не прошивал.

На плате светодиод (второй, не питания) как-то светится? Я так понимаю, что телефон его видит?

В настройках что-то пишет, приложение видит осциллограф?

спасибо, вот это классные измерения, указал в статье

Проверил:

у меня работает отлично, заходит в обработчик прерывания:

Вот на всякий случай копия кода:

 
#include "main.h"
/* Global Variables */
uint8_t Enc_Counter = 0;
/* Function prototypes */
void Enc_Trig_Int(void);
void GPIO_Initialization(void);
int main(void)
{
	//GPIO_Initialization(); // PA4 = TIM14-CH1 !!!
	CMSIS_PWM_Conf();
	/*
	 * PA6 - TIM3_CH1
	 * PA7 - TIM3_CH1
	 */
	/****** GPIO Initialization ******/
	/* GPIOA Clock */
	RCC->AHBENR |= RCC_AHBENR_GPIOAEN;
	/* 10: Alternate function mode */
	GPIOA->MODER &= ~GPIO_MODER_MODER6_0;
	GPIOA->MODER |= GPIO_MODER_MODER6_1;
	/* 00: No pull-up, pull-down */
	GPIOA->PUPDR &= GPIO_PUPDR_PUPDR6_0;
	GPIOA->PUPDR &= GPIO_PUPDR_PUPDR6_1;
	/* 0001: AF1 */
	GPIOA->AFR[0] |= (1UL << GPIO_AFRL_AFSEL6_Pos);
	/* 10: Alternate function mode */
	GPIOA->MODER &= ~GPIO_MODER_MODER7_0;
	GPIOA->MODER |= GPIO_MODER_MODER7_1;
	/* 00: No pull-up, pull-down */
	GPIOA->PUPDR &= GPIO_PUPDR_PUPDR7_0;
	GPIOA->PUPDR &= GPIO_PUPDR_PUPDR7_1;
	/* 0001: AF1 */
	GPIOA->AFR[0] |= (1UL << GPIO_AFRL_AFSEL7_Pos);
	/* Encoder Initialization */
	/* TIM3 Clock */
	RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
	/* 01: CC1 channel is configured as input, IC1 is mapped on TI1
	 * 01: CC2 channel is configured as input, IC2 is mapped on TI2 */
	TIM3->CCMR1 |= (TIM_CCMR1_CC1S_0 | TIM_CCMR1_CC2S_0);
	TIM3->CCMR1 &= ~(TIM_CCMR1_CC1S_1 | TIM_CCMR1_CC2S_1);
	/* 00: noninverted/rising edge */
	TIM3->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC2P);
	TIM3->CCER &= ~(TIM_CCER_CC2NP | TIM_CCER_CC2NP);
	/* 001: Encoder mode 1 - Counter counts up/down on TI2FP1 edge depending on TI1FP2 level */
	TIM3->SMCR |= TIM_SMCR_SMS_0;
	TIM3->SMCR &= ~TIM_SMCR_SMS_1;
	TIM3->SMCR &= ~TIM_SMCR_SMS_2;
	/* 1111: fSAMPLING = fDTS / 32, N = 8 */
	TIM3->CCMR1 |= (TIM_CCMR1_IC1F_0 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_3);
	TIM3->CCMR1 |= (TIM_CCMR1_IC2F_0 | TIM_CCMR1_IC2F_1 | TIM_CCMR1_IC2F_2 | TIM_CCMR1_IC2F_3);
	/* Auto-Reload Register (MAX counter number) */
	TIM3->ARR = 100;
	Enc_Trig_Int();
	/* 1: Counter enabled */
	TIM3->CR1 |= TIM_CR1_CEN;
while(1){
	  Enc_Counter = TIM3->CNT;
	}
}
void Enc_Trig_Int(void){
	/* Trigger Edge Detector */
	/* 100: TI1 Edge Detector (TI1F_ED) */
	TIM3->SMCR &= ~(TIM_SMCR_TS_0 | TIM_SMCR_TS_1);
	TIM3->SMCR |= TIM_SMCR_TS_2;
	/* 1: Trigger interrupt enabled. */
	TIM3->DIER |= TIM_DIER_TIE;
	NVIC_EnableIRQ(TIM3_IRQn);
}
void GPIO_Initialization(void){
  RCC->AHBENR |= RCC_AHBENR_GPIOAEN; /* GPIOA Clock */
  GPIOA->MODER |= GPIO_MODER_MODER4_0; /* 01: General purpose output mode */
  GPIOA->MODER &= ~GPIO_MODER_MODER4_1;
  GPIOA->OTYPER &= ~GPIO_OTYPER_OT_4; /* 0: Output push-pull */
  GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4_0; /* 01: Medium speed */
  GPIOA->OSPEEDR &= ~GPIO_OSPEEDER_OSPEEDR4_1;
  GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR4_0; /* 00: No pull-up, pull-down */
  GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR4_1;
  GPIOA->BSRR |= GPIO_BSRR_BS_4; /* Low Level Out */
}
void TIM3_IRQHandler(void){
	if(TIM3->SR & TIM_SR_TIF){
		TIM14->CCR1 = 25 + TIM3->CNT;
		TIM3->SR &= ~TIM_SR_TIF;
	}
}
 

No, maybe it's possible, but there is no firmware, no programmer and on the some modules the marking on the chip is erased.

Try to buy module from another seller)

зато красиво)

защиты от КЗ нет, срабатывает ограничение по току просто

если долго держать сгорает силовой транзистор от перегрева

Архивы программ и советы электронщикам в ТГ-канале.

← Предыдущая Следующая → 1 2 3 4 Последняя
Показаны 1-20 из 120