Вопрос по RGB матрицам

Здравствуйте. Хочу попробовать сделать управление матрицей через родную STMовскую среду CubeIDE. По копался в сети, понял что нужно сканировать построчно записывая данные в R, G. B. Только не понял как управлять яркостью цвета. То есть если в строке 64 точки, то например если нам нужен цвет R, То пишем 64 единицы или для каждой точки пишем что то другое например байт информации с данными яркости цвета итого 64 байта для строки.
Заранее спасибо.

О каких матрицах речь? Их до хренища разных!

Например 64*32 такой

Я хочу понять принцип управления насыщенностью цвета(палитрой) ???

Понятно.

Я не знаю что такое

но по этой матрице у меня есть документация, включая даташит на драйвер, примеры работы с ней и т.п. Нужно?

Нужно если не жалко. Был бы рад почитать…Лучше на почту supergis2@yandex.ru
Stm32CubeIde
Это среда разработки выпущенная компанией STM для своих чипов, С++

Что на почту, я просто даю Вам ссылку на гугл-диск, там куча файлов (даташит, библиотека от адафрут и т.п.), скачивайте что нужно.

https://drive.google.com/drive/folders/11b-_n4B0VGRcEDBp7WxWYxIm_4PyPRQy?usp=sharing

Большой спасибо…Почитаю…

А вообще, если я ничего не путаю, то по этим матрицам, причём именно с STM, собаку съел @b707 . Попробуйте у него спросить, может он и для этой Вашей STM-IDE что-нить посоветует.

@ЕвгенийП
Насколько я понял, Вадим как раз не хочет использовать мои разработки и хочет разработать свое. Со мной он уже общался…

Не очень понимаю сути вопроса. Если говорить о яркости конкретного пикселя, то три компоненты RGB дают вам не только цвет. но и яркость. Если хотите, вы можете перевести RGB в представление HSV - там будет яркость в явном виде.
Если же вас интересует яркость матрицы в целом, то это делается через управление выводом OE

Исходный код моей библиотеки доступен на гитхабе. там все это есть.

Меня интересует пиксель, хочу все три цвета на полную, передаю R=1,B=1,G=1. А как например R зажечь на половину для конкретного пикселя

Передать на пиксель вы можете только 0 или 1. Поэтому чтобы зажечь один из пикселей на половину, нужно половину времени передавать на него 1, а половину времени - ноль.
Чтобы получить глубину цвета, например, 4 бита - нужно разделить все время работы матрицы на 16 (2**4) периодов и в соответствии с яркостью пикселя передавать на матрицу то единицы, то нули.
Подробнее почитайте здесь. особенно раздел “BCM”

Спасибо главное понял…

Всем привет !
По маленьку получается первая проблема при установке на входы A,B,C (PA1,PA2,PA3)
GPIOA->BRR = 0b0000000000001110;
GPIOA->BSRR = (0b000 << 1);
горит вторая строка с верху, а не первая не понимаю как первую зажечь…???
матрица 40*20
сканирование 1/5
Ещё обнаружил такой эффект при отключении сигнала OE нужная первая строка горит, но сильно тусклее чем вторая, вторая горит ярко.Также появляются тусклые контуры по оси Y на символах, также смещённые на один пиксель вверх.
При включении сигнала ОЕ , горит только вторая ярко.Бледные контуры пропадают.
Вот код вывода…

 if(rows == 5) { rows = 0; rows_bit = 0b000;}

		 	// GPIOA->BSRR = (1<<0);//OE

		 		     GPIOA->BSRR = (1<<4);// LAT HIGH
		 		     GPIOA->BRR = (1<<4);// LAT  LOW

		 		     // Цикл вывода светодиодов в строке
		 		     for(uint8_t i=0; i < 80; i++)
		 		     {// Выставляем биты включения светодиодов

		 		    	GPIOB->BSRR = (0b1111110000000000 << 16) ;//0b0100000  buffer[row][i]
		 		    	GPIOB->BSRR = ( buffer_displ[rows][i] << 10 );
		 		         // Отправляем выставленное значение
		 		        GPIOB->BRR = (1<<9);//CLK Low
		 		        GPIOB->BSRR = (1<<9);//CLK High
		 		     }
		 		     // Выставляем адрес строки для отображения
		 		     GPIOA->BRR = 0b0000000000001110;
		 		     GPIOA->BSRR = ((rows_bit) << 1);
		    //GPIOA->BRR = (1<<0);//OE
 rows++; rows_bit++;

Это вы на какой контроллер пишете?На стм32f4 нет brr регистра, если я не путаю.

f103c8t6 пока на нём пробую.

Пишите сразу совместимо.
Регистр BSRR заменяет сразу два - его нижняя половина устанавливает биты, а верхняя - сбрасывает. Строение BSRR одинаково на МК STM32F1 и F4