<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Radiomanoff+</title>
		<link>http://radiomanoff.at.ua/</link>
		<description>Блог</description>
		<lastBuildDate>Sat, 18 Mar 2017 17:20:09 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://radiomanoff.at.ua/blog/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Часи на матрицях від WiseLord</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/start.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Класна конструкція, не міг не зібрати, тим більше,&amp;nbsp;що був в наявності корпус від старого електронного годинника, незрозуміло якого виробництва. Автор даної конструкції Людина під ніком&amp;nbsp;&lt;b&gt;WiseLord&amp;nbsp;&lt;/b&gt;- &amp;nbsp;&lt;a href=&quot;http://radiokot.ru/circuit/digital/home/206/&quot;&gt;http://radiokot.ru/circuit/digital/home/206/&lt;/a&gt;. Причому автор не робить якоїсь таємниці із коду, він повність доступний. Кому потрібно можуть навіть підправити його під себе...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_215827.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;strong&gt;Дисплей&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#b22222;&quot;&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/span&gt; Я використав три готові матричних&amp;nbsp;модуля із мікросхемами MAX7219, закуплені колись в Китаї, ось такого типу:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLo...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/start.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Класна конструкція, не міг не зібрати, тим більше,&amp;nbsp;що був в наявності корпус від старого електронного годинника, незрозуміло якого виробництва. Автор даної конструкції Людина під ніком&amp;nbsp;&lt;b&gt;WiseLord&amp;nbsp;&lt;/b&gt;- &amp;nbsp;&lt;a href=&quot;http://radiokot.ru/circuit/digital/home/206/&quot;&gt;http://radiokot.ru/circuit/digital/home/206/&lt;/a&gt;. Причому автор не робить якоїсь таємниці із коду, він повність доступний. Кому потрібно можуть навіть підправити його під себе...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_215827.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;strong&gt;Дисплей&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#b22222;&quot;&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/span&gt; Я використав три готові матричних&amp;nbsp;модуля із мікросхемами MAX7219, закуплені колись в Китаї, ось такого типу:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/HTB1OYcCNFXXXXXoXpXXq6xXFXXXa.jpg&quot; style=&quot;width: 300px; height: 300px;&quot; /&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/HTB1KaIzNFXXXXaFXpXXq6xXFXXXu.jpg&quot; style=&quot;width: 300px; height: 300px;&quot; /&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Саме таке розміщення матриць &amp;nbsp;вказує на &quot;не основну&quot; прошивку від автора -&amp;nbsp;&lt;a href=&quot;http://www.radiokot.ru/forum/viewtopic.php?t=112934&quot;&gt;http://www.radiokot.ru/forum/&lt;/a&gt;&amp;nbsp;. Це має значення оскільки існують модуля із матрицями розверненими на 90 градусів.&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;strong&gt;&quot;Мозги&quot;&lt;/strong&gt;&lt;/span&gt;. В якості керуючого мікроконтролера було&amp;nbsp;використано&amp;nbsp;&lt;strong&gt;Atmega328P&lt;/strong&gt;, а якщо вірніше готову плату &lt;strong&gt;Arduino Pro Mini&lt;/strong&gt;. Слід зауважити, що при використанні плат Arduino, потрібно із них випаяти світлодіод, який &quot;висить&quot; на&amp;nbsp;&lt;strong&gt;Digit 13&lt;/strong&gt; (&lt;strong&gt;PB5&lt;/strong&gt;). В схемі годинника на &lt;strong&gt;РВ5&lt;/strong&gt; знаходиться кнопка, підтягнута до &quot;+&quot;. Прошивка для мікроконтролера була використана -&amp;nbsp;&lt;strong&gt;matrixclock_max7219_x3_atmega328.hex&lt;/strong&gt;, &amp;nbsp;eeprom на українські мові -&amp;nbsp;&lt;strong&gt;matrixclock_ua.bin&lt;/strong&gt;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_192318.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;В якості &lt;strong&gt;RTC&lt;/strong&gt; використано готовий модуль із мікросхемою&amp;nbsp;&lt;strong&gt;DS3231&lt;/strong&gt;. З &quot;Дунею&quot; все з&apos;єднано через шматок двохсторонньої макетної плати, до неї також приклеєно клейовим пістолетом - &quot;бузер&quot; на 5В для подачі звукового сигналу.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_192258.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_215204.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_215123.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;strong&gt;Датчики&lt;/strong&gt;&lt;/span&gt;. Поки примінив варіант 1шт &lt;strong&gt;DS18B20&lt;/strong&gt;&amp;nbsp;та 1шт &lt;strong&gt;DHT22&lt;/strong&gt;. Все працює, єдине &quot;внутрушній&quot; &lt;strong&gt;DS18B20&lt;/strong&gt;, всеж потрібно винести назовні із корпуса, трохи підбріхує...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_215730.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_215036.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/IMG_20170315_215455.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/WiseLord/start3.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/chasi_na_matricjakh_vid_wiselord/2017-03-18-35</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/chasi_na_matricjakh_vid_wiselord/2017-03-18-35</guid>
			<pubDate>Sat, 18 Mar 2017 17:20:09 GMT</pubDate>
		</item>
		<item>
			<title>Orange Pi PC. Перше знайомство</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/IMG_20161220_225828-1-.jpg&quot; style=&quot;width: 500px; height: 375px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Купив собі цю &quot;іграшку&quot; з метою вивчення &lt;strong&gt;Linux&lt;/strong&gt;. Доволі&amp;nbsp;цікава річ, як на мене... Розпочалось все із знайомства&amp;nbsp;з операційною системою &lt;strong&gt;OpenWRT &lt;/strong&gt;(спеціального&amp;nbsp;дистрибутиву Linux для роутера і не тільки), &quot;бацила&quot; була підчіплена, та і&amp;nbsp;рамок&amp;nbsp;самого роутера стало замало, тому було кинуто погляд в сторону міні-ПК. Вибір впав на &quot;апельсин&quot; - &lt;strong&gt;Orange Pi&lt;/strong&gt;, а саме модель &lt;strong&gt;Orange Pi PC&lt;/strong&gt;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/luchshij-prodavec-orange-pi-pc-h3-podderzhka-lubun.jpg&quot; style=&quot;width: 500px; height: 500px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Пропорц...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/IMG_20161220_225828-1-.jpg&quot; style=&quot;width: 500px; height: 375px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Купив собі цю &quot;іграшку&quot; з метою вивчення &lt;strong&gt;Linux&lt;/strong&gt;. Доволі&amp;nbsp;цікава річ, як на мене... Розпочалось все із знайомства&amp;nbsp;з операційною системою &lt;strong&gt;OpenWRT &lt;/strong&gt;(спеціального&amp;nbsp;дистрибутиву Linux для роутера і не тільки), &quot;бацила&quot; була підчіплена, та і&amp;nbsp;рамок&amp;nbsp;самого роутера стало замало, тому було кинуто погляд в сторону міні-ПК. Вибір впав на &quot;апельсин&quot; - &lt;strong&gt;Orange Pi&lt;/strong&gt;, а саме модель &lt;strong&gt;Orange Pi PC&lt;/strong&gt;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/luchshij-prodavec-orange-pi-pc-h3-podderzhka-lubun.jpg&quot; style=&quot;width: 500px; height: 500px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Пропорція ціна/начинка зіграла вирішальну роль в виборі девайса. Роутер в мене в зоні досяжності патч-корда, тому була вибрана модель без &lt;strong&gt;WiFi&lt;/strong&gt;. Купляв &quot;голу&quot; плату у виробника&amp;nbsp;&lt;a href=&quot;https://ru.aliexpress.com/item/Orange-Pi-PC-linux-and-android-mini-PC-Beyond-Raspberry-Pi-2/32448079125.html?spm=2114.13010608.0.0.HGsW1b&amp;amp;detailNewVersion=&amp;amp;categoryId=200004017&quot;&gt;https://ru.aliexpress.com/item/Orange-Pi-PC-linux-and-android-mini-PC&lt;/a&gt;. Корпус та шнур живлення купив у сторонього виробника (видно дарма, бо ще не прийшло...). В&amp;nbsp;принципі живлення &lt;strong&gt;+5В&lt;/strong&gt; можна подати прямо&amp;nbsp;на гребінку, що я і зробив. В якості блока живлення використав компютерний імпульсний БЖ, я розумію що він мяко кажучи завеликий, та всеж можна 100% бути впевненим в &quot;якісному&quot; живленні &quot;апельсина&quot;. Пізніше обов&apos;язково підберу щось типу імпульсного БЖ на 2А.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Сама плата прийшла у невеликій коробці,&amp;nbsp;запакована в антистатичну упаковку. Хто буде купляти подібні девайси, повинен розуміти, що до них потрібно буде докупити ще &quot;кучу прибамбасів&quot;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/IMG_20161219_121105-1-.jpg&quot; style=&quot;width: 500px; height: 375px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;strong&gt;Карти&amp;nbsp;MicroSD&lt;/strong&gt;.&lt;/span&gt; Я спробував 2 варіанти.&lt;span style=&quot;color:#FF0000;&quot;&gt;&amp;nbsp;&lt;/span&gt;На фото вище зображена карта &lt;strong&gt;SanDisk&lt;/strong&gt;, рекомендована виробником на 16Гб, її було куплено в Україні в одній із мереж магазинів техніки, через&amp;nbsp;інтернет. Ціна з доставкою в приблизно 7.7$.&lt;/p&gt;

&lt;p&gt;Крім того також була протестована карта від &quot;невідомого&quot; виробника з Китаю, куплена по випадку на розпродажі за 3.66$, зсилка -&amp;nbsp;&lt;a href=&quot;https://ru.aliexpress.com/item/Mingsford-Micro-SD-Card-8G-16G-32G-64G-128G-UHS-I-High-Speed-Flash-Memory-Device/32720658374.html?spm=2114.13010608.0.0.q4p6IK&amp;amp;detailNewVersion=&amp;amp;categoryId=4406&quot;&gt;https://ru.aliexpress.com/item/Mingsford-Micro-SD-Card&lt;/a&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/IMG_20161216_152301-1-.jpg&quot; style=&quot;width: 438px; height: 584px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Для тестування на швидкість використовував програму &lt;strong&gt;h2testw&lt;/strong&gt;. Зрозуміло, що її результат залежить, як і від використаного картрідера, так і &quot;машини&quot; де проводиться тестування. Карта &quot;невідомого&quot; виробника видала таке&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/Test_16gb.gif&quot; style=&quot;width: 395px; height: 327px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;На жаль cтартовий скрін тестування &quot;фірмової&quot; карти &lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;SanDisk Ultra&lt;/strong&gt;&amp;nbsp;не зберігся, та показник Writing був в межах 12-13 МByte/s. А далі. після кількох записів на карту OS Armbian,&amp;nbsp;я всеж зробив тест программою &lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;h2testw&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;. На здивування швидкість відчутно &quot;просіла&quot;,&amp;nbsp;скрін&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/new/san_disk_16.gif&quot; style=&quot;width: 394px; height: 325px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Доречі візуально відчувалась невелика та всеж перевага в швидкості &quot;Китаю&quot; над &quot;фірмою&quot;, при чому тепер і сама&amp;nbsp;&quot;фірма&quot;&amp;nbsp;під великим питанням...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;Підключення до монітора&lt;/span&gt;&lt;/strong&gt;. Мною був використаний перехідник HDMI - VGA ось такого типу:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/2016-vysokoe-kachestvo-hdmi-muzhchina-k-vga-adapte.jpg&quot; style=&quot;width: 400px; height: 400px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Крім того, ще замовив перехідник HDMI - DVI, як приїде буду тестувати....&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;strong&gt;Охолодження&lt;/strong&gt;&lt;/span&gt;. Досить принципове питання для цього міні-ПК. Поки з Китаю їде корпус із кулером, я використав пасивне охолодження у вигляді радіаторів на термоскотчі. Зовсім без радіаторів я б не рекомендував використовувати...&lt;/p&gt;

&lt;p&gt;Для процесора використаний радіатор&amp;nbsp;14*14*6 мм&amp;nbsp;, а для оперативки по два радіатори&amp;nbsp;9*9*5 мм, хоча практика показала що достатньо поставити і по-одному на мікросхему.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/IMG_20161216_182907-1-.jpg&quot; style=&quot;width: 322px; height: 242px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;strong&gt;Що ще&lt;/strong&gt;&lt;/span&gt;. Ну звісно нам не обійтись без клавіатури та миші з USB-інтерфейсом. Миша в мене була,&amp;nbsp;а&amp;nbsp;&quot;клаву&quot; купив в мережі силіконову, доречі вона не надто зручна...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/IMG_20161216_153656-1-.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Програмне забезпечення&lt;/span&gt;.&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 12px; line-height: 32px;&quot;&gt;За адресою&amp;nbsp;&lt;a href=&quot;http://orangepi.su/content.php?p=99&amp;amp;c=OS%20dlya%20Orange%20Pi&quot;&gt;http://orangepi.su/&lt;/a&gt;&amp;nbsp;&amp;nbsp;можна скачати&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;дистрибутиви&amp;nbsp;різних систем для Orange Pi. Поки&amp;nbsp;що &lt;strong&gt;Android &lt;/strong&gt;мене не цікавить, тому зупинюсь на &lt;strong&gt;Linux&lt;/strong&gt;-системах. Практично всі &quot;лінукси&quot; для&lt;strong&gt; Orange Pi PC&lt;/strong&gt; з вище наведеної зсилки я опробував. Вигідно від усіх виділяється ОS &lt;strong&gt;Armbian&lt;/strong&gt;, по швидкості роботи та зручності вона мені сподобалась найбільше, мабуть тому що ця&amp;nbsp;операційка &quot;заточена&quot; саме під подібні плати -&amp;nbsp;&lt;a href=&quot;http://www.armbian.com/orange-pi-pc/&quot;&gt;http://www.armbian.com/orange-pi-pc/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/desk2.jpg&quot; style=&quot;width: 500px; height: 281px;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;span style=&quot;font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;Розширення екрана&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;. Ось тут і починається саме цікаве,&amp;nbsp;практично всі &quot;лінукс-операційки&quot; &amp;nbsp;по дефолту під широкоформатний дисплей. Поки що нерозбирався, як і що налаштовувати в цих системах. Та&amp;nbsp;ось в&amp;nbsp;OS&amp;nbsp;&lt;strong&gt;Armbian &lt;/strong&gt;цей процес &quot;розібрав&quot;, справа в тому,що в системі є цікава утіліта - &lt;strong&gt;h3disp&lt;/strong&gt;, спеціально для налаштування нашого дисплея.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Запускаємо&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;h3disp&lt;/strong&gt;&lt;/p&gt;

&lt;pre style=&quot;text-align: justify; box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@orangepipc:/home/user# h3disp&lt;/pre&gt;

&lt;p&gt;вводимо в &lt;strong&gt;Root Terminal&lt;/strong&gt;, та бачимо таку картину з різноманітними налаштуванннями екрана монітора:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/new/desk5_1.gif&quot; style=&quot;width: 500px; height: 648px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/new/desk5_2.gif&quot; style=&quot;width: 500px; height: 311px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Взагалі я планував використовувати &quot;апельсина&quot; із старим ЕЛТ-монітором, та по замовчуванню в &lt;strong&gt;Armbian &lt;/strong&gt;виставлено розрішення &lt;strong&gt;-m 720p60&lt;/strong&gt; чи &lt;strong&gt;-m 5&lt;/strong&gt; (що означає теж саме). Картинка на моніторі трохи &quot;здавлена&quot; по боках&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/orangepi/new/IMG_20161224_212231.jpg&quot; style=&quot;width: 500px; height: 372px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/orangepi_pershe_znajomstvo/2016-12-22-30</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/orangepi_pershe_znajomstvo/2016-12-22-30</guid>
			<pubDate>Thu, 22 Dec 2016 16:49:23 GMT</pubDate>
		</item>
		<item>
			<title>STM32L - Controller LCD display</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/IMG_20161125_194347.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Цікава тема, та на жаль занадто&amp;nbsp;мало висвітлена в мережі.&lt;/p&gt;

&lt;p&gt;Я вже мав можливість &quot;поюзати&quot; &lt;strong&gt;Liquid crystal display controller&lt;/strong&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/index/stm32l_diskovery_ds18b20_i_vstroennyj_lcd/0-67&quot;&gt;на SPL та &quot;штатному&quot; LCD&lt;/a&gt;&amp;nbsp;&lt;strong&gt;STM32L-DISСOVERY&lt;/strong&gt;. Використовувались при цьому стандартний набор бібліотек для &lt;strong&gt;Discovery&lt;/strong&gt;, на той час...&lt;/p&gt;

&lt;p&gt;А зараз розберемо, &amp;nbsp;цю тему в розрізі бібліотеки &lt;strong&gt;HAL &lt;/strong&gt;та кодогенератора &lt;strong&gt;CubeMX&lt;/strong&gt;. Крім того, будемо використовувати не &quot;штатний LCD&quot; на платі &lt;strong&gt;STM32L Discovery&lt;/strong&gt;, а сторонній &lt;strong&gt;сегментний&lt;/strong&gt; &lt;strong&gt;LCD&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;strong&gt;Наш &quot;піддослідний&quot; сегментни...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/IMG_20161125_194347.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Цікава тема, та на жаль занадто&amp;nbsp;мало висвітлена в мережі.&lt;/p&gt;

&lt;p&gt;Я вже мав можливість &quot;поюзати&quot; &lt;strong&gt;Liquid crystal display controller&lt;/strong&gt;&amp;nbsp;-&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/index/stm32l_diskovery_ds18b20_i_vstroennyj_lcd/0-67&quot;&gt;на SPL та &quot;штатному&quot; LCD&lt;/a&gt;&amp;nbsp;&lt;strong&gt;STM32L-DISСOVERY&lt;/strong&gt;. Використовувались при цьому стандартний набор бібліотек для &lt;strong&gt;Discovery&lt;/strong&gt;, на той час...&lt;/p&gt;

&lt;p&gt;А зараз розберемо, &amp;nbsp;цю тему в розрізі бібліотеки &lt;strong&gt;HAL &lt;/strong&gt;та кодогенератора &lt;strong&gt;CubeMX&lt;/strong&gt;. Крім того, будемо використовувати не &quot;штатний LCD&quot; на платі &lt;strong&gt;STM32L Discovery&lt;/strong&gt;, а сторонній &lt;strong&gt;сегментний&lt;/strong&gt; &lt;strong&gt;LCD&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;strong&gt;Наш &quot;піддослідний&quot; сегментний LCD&lt;/strong&gt;&lt;/span&gt;. Ви його бачите на фото на початку статті. &amp;nbsp;Нічого особливого в ньому нема - 8 символів, три cпарених&amp;nbsp;COMx-піна (1...6)&amp;nbsp;та на кожний символ використано по 3 сегментних піна, загалом 30 пінів.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&quot;Добув&quot; я його із електронного лічильника &quot;Енергія-9&quot;&amp;nbsp;2011 року випуску, який чомусь забракувала енергопостачальна організація... Було зрозуміло, що дисплей без вмонтованого контролера, і невелике &quot;гугління&quot; вивело на дисплеї фірми МЭЛТ МТ-8Т2 -&amp;nbsp;&lt;a href=&quot;http://www.melt.com.ru/docs/MT-8T2.pdf&quot;&gt;http://www.melt.com.ru/docs/MT-8T2.pdf&lt;/a&gt;, які так і позиціонуються фірмою-виробником, як дисплеї для електролічильників.&lt;/p&gt;

&lt;div&gt;&amp;nbsp;&lt;/div&gt;

&lt;div&gt;
&lt;table class=&quot;item_price&quot; style=&quot;border-collapse: collapse; margin: 3px 0px 0px; padding: 0px; width: 852px; font-size: 13px; color: rgb(65, 75, 82); font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);&quot;&gt;
 &lt;tbody&gt;
 &lt;tr class=&quot;inner_table_price&quot; style=&quot;vertical-align: top;&quot;&gt;
 &lt;td style=&quot;border-collapse: collapse; padding: 5px 3px; margin: 0px; vertical-align: middle; text-align: center; font-size: 10px; border: 1px solid rgb(255, 255, 255); color: rgb(0, 0, 0); font-weight: bold; height: 48px; background-color: rgb(226, 252, 161);&quot;&gt;&lt;a href=&quot;http://www.melt.com.ru/shop/mt-8t2-4t.html&quot; style=&quot;color: rgb(1, 159, 68);&quot;&gt;MT-8T2-4T&lt;/a&gt;&lt;/td&gt;
 &lt;td style=&quot;border-collapse: collapse; padding: 5px 3px; margin: 0px; vertical-align: middle; text-align: center; font-size: 10px; border: 1px solid rgb(255, 255, 255); color: rgb(0, 0, 0); font-weight: bold; height: 48px; background-color: rgb(226, 252, 161);&quot;&gt;&amp;nbsp;&lt;/td&gt;
 &lt;td style=&quot;border-collapse: collapse; padding: 5px 3px; margin: 0px; vertical-align: middle; text-align: center; font-size: 10px; border: 1px solid rgb(255, 255, 255); color: rgb(0, 0, 0); font-weight: bold; height: 48px; background-color: rgb(226, 252, 161);&quot;&gt;&amp;nbsp;&lt;/td&gt;
 &lt;td style=&quot;border-collapse: collapse; padding: 5px 3px; margin: 0px; vertical-align: middle; text-align: center; font-size: 10px; border: 1px solid rgb(255, 255, 255); color: rgb(0, 0, 0); font-weight: bold; height: 48px; background-color: rgb(226, 252, 161);&quot;&gt;Без контроллера&lt;/td&gt;
 &lt;td style=&quot;border-collapse: collapse; padding: 5px 3px; margin: 0px; vertical-align: middle; text-align: center; font-size: 10px; border: 1px solid rgb(255, 255, 255); color: rgb(0, 0, 0); font-weight: bold; height: 48px; background-color: rgb(226, 252, 161);&quot;&gt;70x25x2.8&lt;/td&gt;
 &lt;td style=&quot;border-collapse: collapse; padding: 5px 3px; margin: 0px; vertical-align: middle; text-align: center; font-size: 10px; border: 1px solid rgb(255, 255, 255); color: rgb(0, 0, 0); font-weight: bold; height: 48px; background-color: rgb(226, 252, 161);&quot;&gt;-40-+70&lt;/td&gt;
 &lt;td style=&quot;border-collapse: collapse; padding: 5px 3px; margin: 0px; vertical-align: middle; text-align: center; font-size: 10px; border: 1px solid rgb(255, 255, 255); color: rgb(0, 0, 0); font-weight: bold; height: 48px; background-color: rgb(226, 252, 161);&quot;&gt;Для электросчетчиков&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/MT-8T2.jpg&quot; style=&quot;width: 400px; height: 295px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Дисплей пересаджений на макетну плату, та під дисплеєм перемичками з&apos;єднані піни дисплея СОМ3, СОМ2, СОМ1, відповідно 1-6, 2-5, 3-4. Все це добро, в свою чергу під&apos;єднане до &lt;strong&gt;Discovery &lt;/strong&gt;із &lt;strong&gt;STM32L152RBT6 &lt;/strong&gt;на борту. Задіяні&amp;nbsp;лише перших два символа дисплея, так би мовити для проби, оскільки майбутній проект із дисплеєм планується на іншому МК L-серії. Мені важливо було &quot;просто поюзати тему&quot;...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/IMG_20161125_194305.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;strong&gt;Проект в CubeMX&lt;/strong&gt;&lt;/span&gt;. Запускаємо кодогенератор та&amp;nbsp;вибираємо на МК STM32L152RBT6. Вмикаємо SWD-інтерфейс, &quot;часовий&quot; кварц, світлодіоди на платі РВ6, РВ7. Я ще ввімкнув кварц тактування мікроконтролера, хоча в проекті він не використовується, та i&amp;nbsp;взагалі він на платі STM32L Discovery,&amp;nbsp;заводом-виробником не впаюється (хоча в мене впаяний -&amp;nbsp;колись &quot;юзав&quot; USB, i&amp;nbsp;якщо будете запаювати, обовязково поставте перемички каплею припою на платі Discovery, див.схему).&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/MK.gif&quot; style=&quot;width: 500px; height: 400px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Також було ввімкнено &lt;strong&gt;RTC&lt;/strong&gt;,&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;оскільки без цієї процедури відмовлялось працювати, та &quot;висло&quot; на перевірці &amp;nbsp;&lt;span style=&quot;color:#008000;&quot;&gt;&lt;strong&gt;while(__HAL_LCD_GET_FLAG(hlcd, LCD_FLAG_RDY) == RESET)&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;у функції&amp;nbsp;&lt;strong&gt;HAL_LCD_Init &lt;/strong&gt;&amp;nbsp;(файл&amp;nbsp;&lt;strong&gt;stm32l1xx_hal_lcd.c&lt;/strong&gt;). Думаю це повязано із особливостями плати Discovery, на ній не під&apos;єднано пін &lt;strong&gt;VLCD,&amp;nbsp;&lt;/strong&gt;оскільки резистор R29 незапаяний заводом-виробником, тому потрібно задіювати внутрішнє джерело керуючої напруги. Та без задіяння RTC, це зробити не вдалось. На сайті&amp;nbsp;&lt;a href=&quot;http://ziblog.ru/2011/12/08/stm32l-ndash-kontroller-zhki-displeya.html&quot;&gt;ziblog.ru&lt;/a&gt;&amp;nbsp;читаємо ось&amp;nbsp;таке:&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;em&gt;Однак безпосередньо (відразу) вказати LSI-генератор як джерело тактових сигналів LCD модуля можна, так як тактування з`єднано&amp;nbsp;з годинником реального часу (RTC) і пріоритет відданий йому (це видно за назвою сигналу RTCCLK і бітів вибору тактових частот RTCSEL), а в увазі специфіки роботи RTC модуля, необхідно попередньо (після скидання мк) &quot;отримати&quot; доступ до бітам RTCSEL.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/image_thumb13.png&quot; style=&quot;width: 399px; height: 202px;&quot; /&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Вкладка &lt;strong&gt;Clock Configuration&amp;nbsp;&lt;/strong&gt;має такий вигляд:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/set2.gif&quot; style=&quot;width: 400px; height: 350px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Далі вмикаємо контроллер LCD, режим &lt;strong&gt;multiplex&lt;/strong&gt;. В PDF на дисплей&amp;nbsp;МЭЛТ МТ-8Т2, вказано метод керування дисплеєм - 1/3DUTY, 1/3BIAS, VOP=3,0V. Сегменти SEG3...SEG6 не задіяні, в звязку із особливостями плати Discovery, підключено &quot;тач-скрін&quot;, тому використаємо слідуючі вільні - SEG7(PB3), SEG8(PB4), SEG9(PB5).&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/set.gif&quot; style=&quot;width: 326px; height: 319px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Вкладка &lt;strong&gt;LCD Configuration -&lt;/strong&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;привязана&amp;nbsp;до параметрів нашого дисплея та&lt;/span&gt;&amp;nbsp;деякі параметри налаштувань були&amp;nbsp;підглянуті в репозиторії &lt;strong&gt;CubeMX &lt;/strong&gt;для &lt;strong&gt;STM32L15x&lt;/strong&gt;, там є приклади для плати &lt;strong&gt;STM32L&amp;nbsp;Discovery.&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/stm32l/segment/setlsd.gif&quot; style=&quot;width: 500px; height: 523px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;strong&gt;Проект&lt;/strong&gt;&lt;/span&gt;. Генеруємо проект в KEIL 5, та в основному циклові будемо виводити на дисплей числа від 0 до 10, потім число 2,2 ну а потім знову з нуля... Проект чисто демонстраційний -&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/load/segment/1-1-0-42&quot;&gt;http://radiomanoff.at.ua/load/segment/1-1-0-42&lt;/a&gt;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/stm32l_controller_lcd_display/2016-11-25-28</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/stm32l_controller_lcd_display/2016-11-25-28</guid>
			<pubDate>Fri, 25 Nov 2016 17:54:17 GMT</pubDate>
		</item>
		<item>
			<title>WiFi Radio своїми руками. Автозапуск MPD при старті OpenWRT</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://radiomanoff.at.ua/wfr/IMG_20160904_152212.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;В попередні&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://radiomanoff.at.ua/blog/wifi_radio_svojimi_rukami_openwrt_pershe_znajomstvo/2016-09-04-21&quot; id=&quot;статті&quot; style=&quot;color: rgb(7, 130, 193); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;статі&lt;/a&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;ми запустили &lt;strong&gt;WiFi-&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;радіо&lt;/strong&gt; ...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img src=&quot;http://radiomanoff.at.ua/wfr/IMG_20160904_152212.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;В попередні&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://radiomanoff.at.ua/blog/wifi_radio_svojimi_rukami_openwrt_pershe_znajomstvo/2016-09-04-21&quot; id=&quot;статті&quot; style=&quot;color: rgb(7, 130, 193); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;статі&lt;/a&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;ми запустили &lt;strong&gt;WiFi-&lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;радіо&lt;/strong&gt; на базі роутера &lt;strong&gt;ASUS&lt;/strong&gt;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: arial, verdana, helvetica, sans-serif; font-size: 13.3333px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;WL-520GU&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;та операційної системи&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;OpenWRT&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;. Взагалі я планую розробити для нього інтерфейс на базі МК &lt;strong&gt;STM32 &lt;/strong&gt;із дисплеєм та кнопками,&amp;nbsp;для зручного керування плеером. Роботи в цьому плані ведуться, і&amp;nbsp;результати роботи&amp;nbsp;обовязково будуть викладені&amp;nbsp;в цьому блозі...&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Та поки-що зупинемось на автозапуску плеєра &lt;strong&gt;MPD &lt;/strong&gt;при старті операційної системи&amp;nbsp;&lt;strong&gt;OpenWRT&lt;/strong&gt;.&amp;nbsp;Для чого це потрібно нам ..?&amp;nbsp;Справа в тому, що кожного разу при старті девайса , потрібно &quot;вручну&quot;&amp;nbsp;вводити хоча б мінімальну&amp;nbsp;послідовність команд для запуску потокового мовлення, нпаприклад :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;mpd&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;mpc&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;mpc load &lt;file&amp;gt;&lt;/strong&gt; &amp;nbsp;(&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;file&amp;gt; - назва плейлиста&amp;nbsp;&lt;/span&gt;)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;mpc play&lt;/strong&gt; ( запускаємо першу позицію плейлиста )&lt;/p&gt;

&lt;p&gt;Звісно, це не надто зручно, особливо, якщо ми слухаємо&amp;nbsp;одні і ті ж стрім-канали. Спочатку я пішов шляхом вводу цих команд при допомозі МК через UART, та всеж хотілось, щоб все запускалось автоматично при старті системи.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Ну що ж, як справжні початківці-лінуксоїди будемо &quot;юзати&quot;&amp;nbsp;&lt;a href=&quot;https://wiki.marcluerssen.de/index.php?title=OpenWrt/MightyOhm_Wifi_Radio&quot; id=&quot;WiKi&quot; target=&quot;_blank&quot;&gt;WiKi&lt;/a&gt;. Що ми там бачимо :&lt;/p&gt;

&lt;h3 style=&quot;background: none rgb(255, 255, 255); margin: 0.3em 0px 0px; overflow: hidden; padding-top: 0.5em; padding-bottom: 0px; border-bottom: none; font-size: 1.2em; line-height: 1.6; font-family: sans-serif;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span class=&quot;mw-headline&quot; id=&quot;mpd_autostart&quot;&gt;mpd autostart&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/h3&gt;

&lt;blockquote style=&quot;color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);&quot;&gt;
&lt;pre style=&quot;font-family: monospace, Courier; color: black; background-color: rgb(249, 249, 249); border: 1px solid rgb(221, 221, 221); padding: 1em; white-space: pre-wrap; line-height: 1.3em;&quot;&gt;
ln -s /etc/init.d/mpd /etc/rc.d/S93mpd
&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;div&gt;
&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;Нема проблем, вводимо дану команду. Далі&amp;nbsp;&lt;strong&gt;reboot&lt;/strong&gt;&amp;nbsp;роутера... І що ...? Так, ми бачимо, що при стартові, плеєр MPD&amp;nbsp;вмикається і все...&amp;nbsp;А нам же потрібно запустити &quot;автоматом&quot; наш стрім-канал.&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;Ну не буду довго &quot;розсусолювати&quot; . Як виявилось вся справа саме у файлові &lt;strong&gt;S93mpd&lt;/strong&gt;. Будемо його правити. Синхронно правиться файл &lt;strong&gt;mpd &lt;/strong&gt;із &lt;strong&gt;/etc/init.d/&lt;/strong&gt;.&amp;nbsp;Для правки заходимо в нього, через текстовий редактор &lt;strong&gt;vi&lt;/strong&gt;&amp;nbsp;, використовуємо команду&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;
&lt;pre style=&quot;background-color: rgb(249, 249, 249); border: 1px solid rgb(221, 221, 221); padding: 1em; line-height: 1.3em;&quot;&gt;
&lt;font face=&quot;monospace, Courier&quot;&gt;&lt;span style=&quot;font-size: 14px; white-space: pre-wrap;&quot;&gt; vi /etc/rc.d/S93mpd&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;І тут &quot;таємне стає явним&quot;, стає зрозуміло, чому не зупускались &quot;стріми&quot;. Справді команда &lt;strong&gt;mpc add&lt;/strong&gt; - &quot;пуста&quot;, без силки. Так ось чому в нас &quot;неграло&quot;&amp;nbsp;, Тому далі правимо так, як у нас на малюнку, коментуємо (#) чи видаляємо непотрібне...&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/MPD/mpd_set.gif&quot; style=&quot;width: 667px; height: 366px;&quot; /&gt;&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;&amp;nbsp;&lt;/div&gt;

&lt;div style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px;&quot;&gt;Тепер при стартові системи в нас завантажується плейлист &lt;strong&gt;rocks&lt;/strong&gt;, та вмикається перша силка. Виставляється гучність 60%.&amp;nbsp;Цього ми і добивались. Дякую за увагу!&lt;/div&gt;
&lt;/div&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/wifi_radio_svojimi_rukami_avtozapusk_mpd_pri_starti_openwrt/2016-10-05-26</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/wifi_radio_svojimi_rukami_avtozapusk_mpd_pri_starti_openwrt/2016-10-05-26</guid>
			<pubDate>Wed, 05 Oct 2016 10:40:59 GMT</pubDate>
		</item>
		<item>
			<title>STM32 HAL CubeMX &amp; SPI. Дисплей TFT 1.8</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/IMG_20160919_191231.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Дисплей &lt;strong&gt;TFT 1.8,&lt;/strong&gt; купив по випадку, в магазині Ворона&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;. Та дисплей&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;, чомусь був закинутий в &quot;довгий ящик&quot;. Мабуть спочатку&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;не до кінця р...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/IMG_20160919_191231.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Дисплей &lt;strong&gt;TFT 1.8,&lt;/strong&gt; купив по випадку, в магазині Ворона&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;. Та дисплей&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;, чомусь був закинутий в &quot;довгий ящик&quot;. Мабуть спочатку&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;не до кінця розібрався з ініціалізацією...Ба, навіть думав запустити його до сміт&apos;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;євого бачка, та все ж магазин серйозний..., і в кінці кінців цікавість взяла гору, крім того потрібно дисплей для одного проекта,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;з підтримкою&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;кирилиці&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;. Девайс,&amp;nbsp;якщо &quot;дригати ніжками&quot; -&amp;nbsp;доволі &quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;повільний&quot;, тому&amp;nbsp;працювати наш дисплей буде по &lt;strong&gt;SPI&lt;/strong&gt;. Контролер будемо використовувати &lt;strong&gt;STM32F103C8T6&lt;/strong&gt;, а точніше, отримавшу &quot;популярність&quot; плату&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: arial, verdana, helvetica, sans-serif; font-size: 13.3333px; text-align: justify; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;Maple Mini&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/stm32f103c8t6-stm32-minimalnaja-sistemnaja-plata-m.jpg&quot; style=&quot;width: 280px; height: 280px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;Підключення&lt;/strong&gt;. Насамперед вмикаємо &lt;strong&gt;SPI1.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Дисплей має піни &lt;strong&gt;SDA(&lt;/strong&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;SPI1_MOSI&lt;/strong&gt;&lt;strong&gt;)&amp;nbsp;&lt;/strong&gt;та&amp;nbsp;&lt;strong&gt;SCL (&lt;/strong&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;SPI1_SCK&lt;/strong&gt;&lt;strong&gt;), &lt;/strong&gt;це і є наш&lt;strong&gt;&amp;nbsp;SPI - &lt;/strong&gt;інтерфейс. Зворотнього &lt;strong&gt;MISO&lt;/strong&gt; немає..&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Пін &lt;strong&gt;CS &lt;/strong&gt;можна не використовувати, та посадити його на &quot;землю&quot;. Це&amp;nbsp;має сенс зробити, якщо ми маємо лише один &quot;девайс&quot; на шині SPI&amp;nbsp;.&amp;nbsp;Та ми все ж використаємо його, та зарезервуємо за ним пін.&lt;/p&gt;

&lt;p&gt;Пін &lt;strong&gt;RЕS&amp;nbsp;&lt;/strong&gt;- &quot;reset&quot; дисплея.&lt;/p&gt;

&lt;p&gt;Пін &lt;strong&gt;А0 &lt;/strong&gt;- при значенні &lt;strong&gt;&apos;0&apos;&lt;/strong&gt; - йде відправка команди, при значенні&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;&amp;nbsp;&apos;1&apos;&lt;/strong&gt;&amp;nbsp;&lt;/span&gt; - відправка даних.&lt;/p&gt;

&lt;p&gt;SPI вмикаємо в режимі &lt;strong&gt;Transmit Only Master&lt;/strong&gt;:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/cube.bmp&quot; style=&quot;width: 400px; height: 91px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Tакож не&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;забудемо вві&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;мкнути&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;Serial&amp;nbsp;Wire&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;у вкладці&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;SYS&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;. Крім того,&amp;nbsp;налаштуємо декілька пінів на вихід (&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;GPIO_Output&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;), та увімкнемо USART1 для майбутнього проекта....&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/stm32f103_cube.gif&quot; style=&quot;width: 400px; height: 391px;&quot; /&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Підключення пінів прописано у файлі&amp;nbsp;&lt;/span&gt;&lt;strong&gt;TFT_1_8.h&lt;/strong&gt;&amp;nbsp;, в моєму випадку&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color:#006400;&quot;&gt;#define RES_PORT &amp;nbsp; &amp;nbsp; GPIOA&lt;br /&gt;
#define CS_PORT &amp;nbsp; &amp;nbsp; &amp;nbsp;GPIOA&lt;br /&gt;
#define A0_PORT &amp;nbsp; &amp;nbsp; &amp;nbsp;GPIOA&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color:#006400;&quot;&gt;#define RES_PIN &amp;nbsp; &amp;nbsp; &amp;nbsp;GPIO_PIN_2&lt;br /&gt;
#define CS_PIN &amp;nbsp; &amp;nbsp; &amp;nbsp; GPIO_PIN_3&lt;br /&gt;
#define A0_PIN &amp;nbsp; &amp;nbsp; &amp;nbsp; GPIO_PIN_4&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Та &lt;strong&gt;SPI1 &lt;/strong&gt;у файлі &lt;strong&gt;stm32fxx_hal_mcp.c&lt;/strong&gt;, нам генерує CubeMX:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp; &amp;nbsp; /**SPI1 GPIO Configuration &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; PA5 &amp;nbsp; &amp;nbsp; ------&amp;gt; SPI1_SCK&lt;br /&gt;
&amp;nbsp; &amp;nbsp; PA7 &amp;nbsp; &amp;nbsp; ------&amp;gt; SPI1_MOSI&amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; */&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;CubeMX &amp;amp; SPI&lt;/strong&gt;. Для роботи з дисплеєм , найперше потрібна функція відправки даних на дисплей, звісно використовуючи &lt;strong&gt;SPI&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color:#006400;&quot;&gt;void TFT_write_byte(unsigned char value, unsigned char DC) //0-command 1-data&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;CS_LOW;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; if(DC != 0){A0_HIGH;}&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; else{A0_LOW;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;HAL_SPI_Transmit(&amp;amp;hspi1, &amp;amp;value, 1, 5000);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;CS_HIGH ;&lt;br /&gt;
}&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;div&gt;&lt;strong&gt;Ініціалізація. Запускаємо дисплей&lt;/strong&gt;. Для коректної роботи ця функція мабуть найголовніша. Взагалі спочатку було&amp;nbsp;не зрозуміло з яким саме контролером дисплея ми маємо діло (магазин ніякої інформації не давав), та все ж методом проб та помилок вірне рішення було знайдено.&amp;nbsp;Контролер дисплея виявився &lt;strong&gt;ST7735&lt;/strong&gt;, а вірна ініціалізація у АВР-щиків -&amp;nbsp;&lt;a href=&quot;http://we.easyelectronics.ru/lcd_gfx/podklyuchenie-tft-displeya-k-avr.html&quot;&gt;http://we.easyelectronics.ru/&lt;/a&gt;&lt;/div&gt;

&lt;div&gt;Причому після увімкнення дисплея командою&lt;font color=&quot;#000000&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;font color=&quot;#000000&quot;&gt;display on (0х29) потрібно налаштувати колір (&lt;/font&gt;0x2D&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;):&lt;/span&gt;&lt;/div&gt;

&lt;div&gt;
&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp; TFT_write_byte(0x29,0); &amp;nbsp; &amp;nbsp;// display on&lt;br /&gt;
&amp;nbsp; HAL_Delay(150);&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp; TFT_write_byte(0x2D,0); &amp;nbsp;//Look up table&lt;br /&gt;
&amp;nbsp; for(c=0;c&lt;32;c++)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; TFT_write_byte(2*c,1); //Red&lt;br /&gt;
&amp;nbsp; for(c=0;c&lt;64;c++)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; TFT_write_byte(1*c,1); //Green&lt;br /&gt;
&amp;nbsp; for(c=0;c&lt;32;c++)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; TFT_write_byte(2*c,1); //Blue&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;color:#006400;&quot;&gt; TFT_write_byte(0x2c,0);&lt;br /&gt;
&amp;nbsp; HAL_Delay(150);&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Міняємо орієнтацію дисплея&lt;/strong&gt;. Для цього використаємо функцію&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;strong&gt;void TFT_set_rotation(unsigned char rot);&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;Всі фото зробленні при значенні 0х01. Відповідно значення 0х02, 0х03 та 0х04 міняють орієнтацію дисплея та відповідні зачення ширини та висоти ( w &amp;amp; l&amp;nbsp;) .&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Далі стандартні графічні функціі малювання лінії, прямокутника та кола -&amp;nbsp;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;strong&gt;TFT_Draw_Line,&amp;nbsp;TFT_Draw_Rectangle,&amp;nbsp;ТFT_Draw_Circle. &lt;/strong&gt;&lt;/span&gt;&lt;span style=&quot;color:#000000;&quot;&gt;Тут все доволі звичайно...тому зупинятись не будемо&lt;strong&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#000000;&quot;&gt;&lt;strong&gt;Текст та кирилиця&lt;/strong&gt;. І ось ми підійшли до самого цікавого. Використано шрифт від Arduino-проектів, його фішка в тому ,що на одному шрифтові можна використовувати різний розмір:&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/IMG_20160919_191126.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Та на жаль шрифт не підтримував кирилицю, І знову на допомогу прийшли &quot;ардуінщики&quot; ,&quot;покрутившись&quot; у них по форумах знайшлись необхідні коди символів кирилиці. Знову таки методом проб і помилок, вдалось добитись слідуючої &quot;картинки&quot;, яка відповідає кодуванню&amp;nbsp;&lt;strong&gt;UTF-8&lt;/strong&gt;:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/A_STM32/IMG_20160919_191202.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Для номерів з U + 0000 по U + 007F кодування UTF-8 повністю відповідає 7-бітному US-ASCII c 0 в старшому бітові і займає один байт. Вивід кириличного символа прийшлось доробляти&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &quot;Trebuchet MS&quot;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;, оскільки символ займав 2 байта і на екрані дисплея між символами &quot;висвітлювалось&quot; пусте місце. Прийшлось гасити його програмно&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/stm32_hal_cubemx_spi_displej_tft_1_8/2016-09-19-24</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/stm32_hal_cubemx_spi_displej_tft_1_8/2016-09-19-24</guid>
			<pubDate>Mon, 19 Sep 2016 16:29:51 GMT</pubDate>
		</item>
		<item>
			<title>WiFi Radio своїми руками. OpenWRT - перше знайомство</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/12.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Занадто цікава тема , щоб я зміг пройти повз...&lt;/p&gt;

&lt;p&gt;Почалось все ось із цієї&amp;nbsp;&lt;a href=&quot;http://cxem.net/tuner/tuner86.php&quot; target=&quot;_blank&quot;&gt;статті&lt;/a&gt;&amp;nbsp;. Автор доволі детально описав , як він із роутера &lt;strong&gt;ASUS WL-520GU&amp;nbsp;&lt;/strong&gt;cтворив&amp;nbsp;&lt;strong&gt;WiFi радіоприймач&lt;/strong&gt;,&amp;nbsp;яким можна прослуховувати радіостанції, через мережу &lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;інтернет&amp;nbsp;&lt;/span&gt;. Взагалі стаття являється &quot;рімейком&quot; статті Джефа -&amp;nbsp;&lt;a href=&quot;http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/&quot;&gt;http://mightyohm.com/&lt;/a&gt;, тільки веcь процес &quot;хакінга&quot;&amp;nbsp;описаний в розрізі Windows...&lt;/p&gt;

&lt;p&gt;Сам роутер, який в мережі став вже &quot;легендарним&quot;, я купив б/у&amp;nbsp;на...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/12.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Занадто цікава тема , щоб я зміг пройти повз...&lt;/p&gt;

&lt;p&gt;Почалось все ось із цієї&amp;nbsp;&lt;a href=&quot;http://cxem.net/tuner/tuner86.php&quot; target=&quot;_blank&quot;&gt;статті&lt;/a&gt;&amp;nbsp;. Автор доволі детально описав , як він із роутера &lt;strong&gt;ASUS WL-520GU&amp;nbsp;&lt;/strong&gt;cтворив&amp;nbsp;&lt;strong&gt;WiFi радіоприймач&lt;/strong&gt;,&amp;nbsp;яким можна прослуховувати радіостанції, через мережу &lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;інтернет&amp;nbsp;&lt;/span&gt;. Взагалі стаття являється &quot;рімейком&quot; статті Джефа -&amp;nbsp;&lt;a href=&quot;http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/&quot;&gt;http://mightyohm.com/&lt;/a&gt;, тільки веcь процес &quot;хакінга&quot;&amp;nbsp;описаний в розрізі Windows...&lt;/p&gt;

&lt;p&gt;Сам роутер, який в мережі став вже &quot;легендарним&quot;, я купив б/у&amp;nbsp;на OLX приблизно за 6$. Його фішка в наявності &lt;strong&gt;USB&lt;/strong&gt;-виходу для принтера, та підтримці&amp;nbsp;&lt;a href=&quot;https://wiki.openwrt.org/toh/asus/wl520gu&quot;&gt;OpenWRT&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/IMG_20160904_150208.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Роутер прошивається новою прошивкою, яка &quot;монтує&quot; на ньому операційну систему - &lt;strong&gt;OpenWRT&lt;/strong&gt;, &amp;nbsp;засновану на ядрі &lt;strong&gt;Linux&lt;/strong&gt;, і призначену, в першу чергу, для домашніх маршрутизаторів. Крім того &lt;strong&gt;OpenWrt &lt;/strong&gt;дозволяє під&apos;єднати до нашого роутера &quot;кучу&quot; різних девайсів, як то рідкокристалічний&amp;nbsp;дисплей чи OneWire датчик.&amp;nbsp; В&amp;nbsp;мережі навіть існує проект&amp;nbsp;&lt;a href=&quot;http://h-wrt.com/ru&quot;&gt;h-wrt&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;В&amp;nbsp;нашому ж випадку ця прошивка, дозволяє використовувати &lt;strong&gt;USB&lt;/strong&gt;-вихід&amp;nbsp;для&amp;nbsp;відтворення звуку. Це відбуваєься за допомогою &lt;strong&gt;USB-audio&lt;/strong&gt; карти.&amp;nbsp;Я&amp;nbsp;використав ось таку, саму дешевшу ( 1$&amp;nbsp;), хоча звук із неї, правду кажучи - недуже... Так, що гурманам звуку рекомендую брати щось &quot;серйозніше&quot;...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/394324883_w640_h640_elmagaz.png&quot; style=&quot;width: 200px; height: 179px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&quot;Хакінг&quot; роутера &amp;nbsp;ASUS WL-520GU.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Сам процес доволі добре описаний у вище згаданні статті -&amp;nbsp;&lt;a href=&quot;http://cxem.net/tuner/tuner86.php&quot;&gt;http://cxem.net/&lt;/a&gt;&amp;nbsp;, та і у самого Джефа -&amp;nbsp;&lt;a href=&quot;http://mightyohm.com/blog/2008/10/building-a-wifi-radio-part-1-introduction/&quot;&gt;http://mightyohm.com/&lt;/a&gt;. Ми ж зупинимось лиш на деяких моментах.&lt;/p&gt;

&lt;p&gt;В якості &quot;прошивальщика&quot; &amp;nbsp;я використовував самий звичайний&amp;nbsp;перехідник USB - UART на мікросхемі &lt;strong&gt;PL2303&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;+3В&lt;/strong&gt; до роутера&amp;nbsp;&lt;span style=&quot;color:#FF0000;&quot;&gt;не під&apos;єднував&lt;/span&gt;, тільки &lt;strong&gt;RX&lt;/strong&gt;, &lt;strong&gt;TX &lt;/strong&gt;та &lt;strong&gt;GND&lt;/strong&gt;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/IMG_20160904_184341.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Для прошивки потрібно попередньо&amp;nbsp;впаяти 4-ох контактний роз&apos;єм типу &lt;strong&gt;PLS&lt;/strong&gt; на плату роутера.&amp;nbsp;Для людей, хоч трохи знайомих з паяльником, я думаю, це не створить якихось додаткових труднощів...&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/tuner86-13.jpg&quot; style=&quot;width: 400px; height: 287px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Процес перепрошивки, також добре описаний, тому не будемо на цьому зупинятись. Особисто мені знадобилось, якихось півгодини і ось все готово:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/open_wrt.gif&quot; style=&quot;width: 500px; height: 327px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ми маємо роутер з прошивкою &lt;strong&gt;OpenWRT&lt;/strong&gt;. Ну що ж,&amp;nbsp;ласкаво просимо в клуб лінуксоїдів...&lt;/p&gt;

&lt;p&gt;Далі потрібно прописати нашу WiFi-мережу, налаштувати сервіс DHCP та зробити все так, як описано на&amp;nbsp;&lt;a href=&quot;http://cxem.net/tuner/tuner86.php&quot; style=&quot;color: rgb(7, 130, 193); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;http://cxem.net/&lt;/a&gt;,&amp;nbsp;поки не получимо &quot;заповітний&quot;&amp;nbsp;пінг наприклад від google.com&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/2_ping.gif&quot; style=&quot;width: 500px; height: 261px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Крім цього в даній сборці &lt;strong&gt;OpenWRT &lt;/strong&gt;присутня утіліта &lt;strong&gt;opkg&lt;/strong&gt; - яка являється встановщиком пакетів.&amp;nbsp;Ми трохи підредагуємо її налаштування і вона буде завантажувати установки з сайту Джефа.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/3_obnova.gif&quot; style=&quot;width: 500px; height: 411px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;Крім того потрібно встановити стек&amp;nbsp;&lt;span style=&quot;color: rgb(73, 73, 73); font-family: Arial, Helvetica, sans-serif; line-height: 18.2px; background-color: rgb(255, 255, 255);&quot;&gt;USB-AUDIO:&lt;/span&gt;&lt;/p&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# opkg install kmod-usb-audio kmod-usb-ohci&lt;/pre&gt;

&lt;p style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;&lt;span style=&quot;color: rgb(73, 73, 73); font-family: Arial, Helvetica, sans-serif; line-height: 18.2px; background-color: rgb(255, 255, 255);&quot;&gt;Якщо все &quot;нормал&quot; то ми повин&lt;span style=&quot;font-size:12px;&quot;&gt;ні почути &lt;/span&gt;на виході звукової карти - &quot;шипіння&quot;.&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/IMG_20160904_152212.jpg&quot; style=&quot;cursor: default; width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Встановлюємо&lt;/strong&gt;&amp;nbsp;&lt;b style=&quot;color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px; line-height: 22.4px; background-color: rgb(255, 255, 255);&quot;&gt;Music Player Daemon&lt;/b&gt;&lt;span style=&quot;color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px; line-height: 22.4px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;(&lt;/span&gt;&lt;b style=&quot;color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px; line-height: 22.4px; background-color: rgb(255, 255, 255);&quot;&gt;MPD&lt;/b&gt;&lt;span style=&quot;color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px; line-height: 22.4px; background-color: rgb(255, 255, 255);&quot;&gt;).&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color: rgb(37, 37, 37); font-family: sans-serif; line-height: 22.4px; background-color: rgb(255, 255, 255);&quot;&gt;Що ж це за &quot;штукенція&quot; така.&amp;nbsp;Згідно&amp;nbsp;&lt;a href=&quot;https://ru.wikipedia.org/wiki/Music_Player_Daemon&quot;&gt;wikipedia.org&lt;/a&gt;&amp;nbsp;:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color: rgb(37, 37, 37); font-family: sans-serif; line-height: 22.4px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;strong&gt;Music Player Daemon (MPD)&lt;/strong&gt; - &lt;span style=&quot;color:#2F4F4F;&quot;&gt;музичний програвач з клієнт-серверною архітектурою, який відтворює музику з зазначеного каталогу. Відтворенням керують за допомогою клієнта. Керувати сервером (демоном) можна з будь-якої машини з мережі, але слухати музику можна і на своєму комп&apos;ютері, якщо програму-клієнт MPD налаштувати на підключення до локального хосту.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;color:#2F4F4F;&quot;&gt;Відтворенням можна керувати з&amp;nbsp;інших комп&apos;ютерів, а також з мобільних пристроїв (користувацькі додатки для iOS, Android, Symbian і багатьох інших платформ). Керувати відтворенням музики можна не тільки через локальну мережу, а й через Інтернет (конфігураційний файл дозволяє задати, на яких саме мережевих інтерфейсах повинен працювати сервер).​&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Тут теж все доволі просто ставиться:&lt;/p&gt;

&lt;p style=&quot;box-sizing: border-box; color: rgb(73, 73, 73); font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18.2px; background-color: rgb(255, 255, 255);&quot;&gt;Встановимо плеєр MPD&lt;/p&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:# cd ~&lt;/pre&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# opkg update&lt;/pre&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# opkg install mpd mpc&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/pre&gt;

&lt;p style=&quot;box-sizing: border-box; color: rgb(73, 73, 73); font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18.2px; background-color: rgb(255, 255, 255);&quot;&gt;та налаштуємо&amp;nbsp;його&lt;/p&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# cd ~&lt;/pre&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# mkdir .mpd&lt;/pre&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# mkdir music&lt;/pre&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# mkdir .mpd/playlists&lt;/pre&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# vi /etc/mpd.conf&lt;/pre&gt;

&lt;p&gt;Далі правимо файл mpd.conf . Робимо все, як на малюнку. Знімаємо коментарі&amp;nbsp;та вставляємо &lt;strong&gt;sound &lt;/strong&gt;.&amp;nbsp;Знявши коментарі з цих рядків ми включаємо підтримку нашої звукової карти в демона MPD. Щоб почати вносити правки потрібно натиснути комбінацію клавіш &lt;strong&gt;ESC &amp;nbsp;+&amp;nbsp;&lt;/strong&gt;&quot;&amp;nbsp;&lt;strong&gt;: i&lt;/strong&gt; &quot; (ай)&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/set_mpd.gif&quot; style=&quot;width: 500px; height: 261px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Для вихода та збереження налаштувань тиснемо &lt;strong&gt;SHIFT+&quot; : &quot;&lt;/strong&gt; , далі&amp;nbsp;вводимо команду &lt;strong&gt;wq&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/set_mpd_quit.gif&quot; style=&quot;width: 500px; height: 264px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Тиснемо ENTER , налаштування збережено.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/set_mpd_quit2.gif&quot; style=&quot;width: 500px; height: 264px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Запускаємо плеєр MPD&lt;/p&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# mpd&lt;/pre&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# mpc&lt;/pre&gt;

&lt;p&gt;Якщо все добре, то бачимо таку картинку&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/mpd_mpc.gif&quot; style=&quot;width: 500px; height: 262px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Далі додаємо нову ссилку на стрім радіостанціїї, наприклад радіо&quot;Такт&quot; (Вінниця) -&amp;nbsp;&lt;a href=&quot;http://radiotakt.com.ua:8000/takt.mp3&quot;&gt;http://radiotakt.com.ua:8000/takt.mp3&lt;/a&gt;. Використовуємо команду &lt;strong&gt;mpc add&lt;/strong&gt; :&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc add http://radiotakt.com.ua:8000/takt.mp3&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Далі вмикаємо відтворення&amp;nbsp;&lt;/p&gt;

&lt;pre style=&quot;box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(73, 73, 73); font-size: 13px; line-height: 18.2px; background: rgb(255, 255, 255);&quot;&gt;
root@OpenWrt:~# mpc play&lt;/pre&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/mpc_play.gif&quot; style=&quot;width: 500px; height: 260px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Насолоджуємось хорошою музикою. Саме на цьому місці закінчується цікава&amp;nbsp;&lt;a href=&quot;http://cxem.net/tuner/tuner86.php&quot;&gt;розповідь&lt;/a&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;пана&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://cxem.net/profile/12388&quot; style=&quot;color: rgb(7, 130, 193); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;detsadikoffa&lt;/a&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;ми ж в свою чергу,&amp;nbsp;доповнимо її ще деякими моментами ...&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;span style=&quot;font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;strong&gt;Створення та збереження плейлиста&lt;/strong&gt;&lt;strong style=&quot;color: rgb(51, 51, 51);&quot;&gt;&amp;nbsp;&lt;/strong&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;В MPD є можливість створення плейлистів. Покажемо це на прикладі.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Додаємо ще парочку стрім-каналів:&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;ДжемФМ(Київ)&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc add http://cast.radiogroup.com.ua:8000/jamfm&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;RockFM(Москва)&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc add http://radio.2kom.ru:8000/RockFM&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;Команда &lt;strong&gt;mpc playlist&lt;/strong&gt;, дає змогу нам подивитись поточний плейлист, як бачимо наші три стрім-канала&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/playlist1.gif&quot; style=&quot;width: 500px; height: 264px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Тепер збережемо плейлист (назвемо його &lt;strong&gt;rocks&lt;/strong&gt;), командою &lt;strong&gt;mpc save&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc save rocks&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Далі очистимо список відтворення командою &lt;strong&gt;mpc clear&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc clear&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;Тепер після команди перегляду плейлиста -&amp;nbsp;&lt;strong&gt;mpc playlist&lt;/strong&gt;,&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;нічого не відбувається оскільки список відтворення пустий.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face=&quot;arial, helvetica, sans-serif&quot;&gt;Тепер завантажимо, наш збережений плейлист &lt;strong&gt;rocks&amp;nbsp;&lt;/strong&gt;:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc load rocks&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Та знову переглянемо плейлист командою&amp;nbsp;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;mpc&amp;nbsp;playlist&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc playlist&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Як бачимо наш плейлист &lt;strong&gt;rocks &lt;/strong&gt;нормально завантажився&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/save_list1.gif&quot; style=&quot;width: 500px; height: 262px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Вмикаємо, наприклад, другу ссилку&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc play 2&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;А далі ще просто команду &lt;strong&gt;mpc &lt;/strong&gt;, для перегляду відтворюваної композиції&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;root@OpenWrt:~# mpc&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/playlist3.gif&quot; style=&quot;width: 500px; height: 261px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&quot;Достукуємось&quot; до пристрою через мережу&lt;/span&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Всі попередні маніпуляції ми робили через перехідник USB-UART, відключаємо його, будемо пробувати достукатись до девайса через мережу...&lt;/p&gt;

&lt;p&gt;Для початку я прописав роутер в своїй &quot;домашні&quot; мережі за постійною адресою 192.168.1.99 по його MAC-адресу. Це дає можливість не гадати, де прописався наш роутер після &lt;span style=&quot;font-family:courier new,courier,monospace;&quot;&gt;reboot &lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;чи вимкнення живлення.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Для УкрТелекомівського роутера&amp;nbsp;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;strong&gt;HUAWEY&amp;nbsp;HG532e &amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;, це буде виглядати приблизно так :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/modem.gif&quot; style=&quot;width: 600px; height: 430px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;Далі запускаємо программу-клієнт &lt;strong&gt;PuTTY &lt;/strong&gt;, будемо підключатись через &lt;strong&gt;SSH&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/ssh.gif&quot; style=&quot;width: 500px; height: 478px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Приєднуємось. При першому &amp;nbsp;підключені, потрібно задати новий пароль для користувача &lt;strong&gt;root&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Наступні&amp;nbsp;рази процес приєднання, буде мати такий вигляд&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/login_as.gif&quot; style=&quot;width: 500px; height: 75px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Пишемо &lt;strong&gt;root &lt;/strong&gt;- тисанемо&amp;nbsp;ENTER. Далі&amp;nbsp;вводимо пароль і потрапляємо в OpenWRT&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/opn.gif&quot; style=&quot;width: 500px; height: 262px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size:14px;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;ANDROID - додатки&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Для MPD їх існує чимало,&amp;nbsp;ми ж зупинимось на двох програмах .&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: rgb(33, 33, 33); line-height: 35px;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;&lt;span style=&quot;line-height: 35px;&quot;&gt;Mobile SSH.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(33, 33, 33); line-height: 35px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;color: rgb(33, 33, 33); line-height: 35px;&quot;&gt;Программа клієнт, дуже подібна до PuTTY, ссилка в PlayМаркет -&amp;nbsp;&lt;a href=&quot;https://play.google.com/store/apps/details?id=mobileSSH.feng.gao&amp;amp;hl=ru&quot;&gt;https://play.google.com/store/apps/details?id=mobileSSH.feng.gao&amp;amp;hl=ru&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/android/Screenshot_openwrt_conect.png&quot; style=&quot;width: 350px; height: 622px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/android/Screenshot_openwrt.png&quot; style=&quot;width: 350px; height: 622px;&quot; /&gt;&lt;/p&gt;

&lt;h3 class=&quot;r&quot; style=&quot;font-size: 18px; font-weight: normal; margin: 0px; padding: 0px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: rgb(34, 34, 34); font-family: arial, sans-serif; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;span style=&quot;color:#FF0000;&quot;&gt;&amp;nbsp;Droid MPD Client&lt;/span&gt;&lt;/strong&gt;. Доволі цікава программа (&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.soreha.droidmpdclient&amp;amp;hl=ru&quot;&gt;https://play.google.com/store/apps/details?id=com.soreha.droidmpdclient&amp;amp;hl=ru&lt;/a&gt;), по-суті пульт керування плеєром та пристрій для відображення поточного плейлиста&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/android/scren_droid_list.gif&quot; style=&quot;width: 350px; height: 622px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/wfr/android/scren_volum.gif&quot; style=&quot;width: 350px; height: 622px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/wifi_radio_svojimi_rukami_openwrt_pershe_znajomstvo/2016-09-04-21</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/wifi_radio_svojimi_rukami_openwrt_pershe_znajomstvo/2016-09-04-21</guid>
			<pubDate>Sun, 04 Sep 2016 15:15:02 GMT</pubDate>
		</item>
		<item>
			<title>Stm32f030f4 &amp; Ds3231.CubeMX HAL &amp; I2C . Годинник з будильником та термометром</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/IMG.jpg&quot; style=&quot;width: 250px; height: 333px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Пропоную ваші увазі проект годинника з будильником та термометром на мікроконтролері &lt;strong&gt;stm32f030f4p6&amp;nbsp;&lt;/strong&gt;та годиннику реального часу на мікросхемі &lt;strong&gt;ds3231&lt;/strong&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Для початку нагадаємо ,що МК серії&amp;nbsp;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;stm32f0хх&amp;nbsp;&lt;/strong&gt;впринципі мають на своєму &quot;борту&quot; - годинник реального часу &lt;strong&gt;RTC&lt;/strong&gt;. Та всеж в корпусах &lt;span style=&quot;color: rgb(51, 51, 51); line-height: 20px; text-align: justify; background-color: rgb(255, 255, 255);&quot;&gt;TSSOP20&amp;nbsp;та QFP32 відсутній...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/IMG.jpg&quot; style=&quot;width: 250px; height: 333px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Пропоную ваші увазі проект годинника з будильником та термометром на мікроконтролері &lt;strong&gt;stm32f030f4p6&amp;nbsp;&lt;/strong&gt;та годиннику реального часу на мікросхемі &lt;strong&gt;ds3231&lt;/strong&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Для початку нагадаємо ,що МК серії&amp;nbsp;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;stm32f0хх&amp;nbsp;&lt;/strong&gt;впринципі мають на своєму &quot;борту&quot; - годинник реального часу &lt;strong&gt;RTC&lt;/strong&gt;. Та всеж в корпусах &lt;span style=&quot;color: rgb(51, 51, 51); line-height: 20px; text-align: justify; background-color: rgb(255, 255, 255);&quot;&gt;TSSOP20&amp;nbsp;та QFP32 відсутній пін для підключення батарейки, це&amp;nbsp;не дає змогу зберігати покази годинника при відключенні живлення. Саме корпус&amp;nbsp;&lt;strong&gt;TSSOP20&amp;nbsp;&lt;/strong&gt;має наш МК&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;stm32f030f4p6&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;color: rgb(51, 51, 51); line-height: 20px; text-align: justify; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); line-height: 20px; text-align: justify; background-color: rgb(255, 255, 255);&quot;&gt;Саме по причині відсутності батарейки, вирішено було примінити зовнішній RTC. Вибір впав на &lt;strong&gt;ds3231 &lt;/strong&gt;. Ця мІкросхема досить непогано себе зарекомендувала. крім того її досить просто купити в мережі&amp;nbsp;у вигляді ARDUINO-шилда в придачу з мікросхемою пам&apos;яті&amp;nbsp;, при чому по досить &quot;демократичні&quot;&amp;nbsp;ціні...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); line-height: 20px; text-align: justify; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/SKU082052c.jpg&quot; style=&quot;width: 300px; height: 147px;&quot; /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;На відміну від безлічі популярних,&amp;nbsp;але застарілих рішень, тут на платі немає&amp;nbsp;кварцевого резонатора, який визначає&amp;nbsp;точність та стабільність ходу&amp;nbsp;годинника, але водночас є самим примхливим&amp;nbsp;вузлом.&amp;nbsp;Сучасний&amp;nbsp;надмініатюрний резонатор&amp;nbsp;захований в корпус мікросхеми DS3231. Там же&amp;nbsp;знаходиться термометр і схема&amp;nbsp;термокомпенсації. Така система забезпечує&amp;nbsp;точність ходу кілька хвилин на рік - близько&amp;nbsp;4ppm, тобто 4&amp;nbsp;мільйонні частки в діапазоні&amp;nbsp;температур від нуля до +40 градусів Цельсія.&amp;nbsp;Параметри звичайних кварців гірше в десятки&amp;nbsp;раз! У мікросхемі&amp;nbsp;реалізована цифрова&amp;nbsp;корекція ходу, є два будильника,&amp;nbsp;високосний&amp;nbsp;календар на 100 років і безліч&amp;nbsp;інших &quot;зручностей&quot;. Докладний опис&amp;nbsp;мікросхеми DS3231 можна подивитись на сайті виробника.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Також в проекті примінено дисплей&amp;nbsp;&lt;strong&gt;NOKIA 5110 &lt;/strong&gt;та &lt;strong&gt;3 кнопки &lt;/strong&gt;,&amp;nbsp;підключених як у минулій&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/blog/stm32_button_debounce_boremos_iz_drizhannjam_knopki/2016-06-20-10&quot;&gt;статі&lt;/a&gt;&amp;nbsp;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-family:arial,helvetica,sans-serif;&quot;&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;Принципова схема:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/Stm32_Ds3231_bb.gif&quot; style=&quot;width: 700px; height: 495px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Розбір польотів - &lt;strong&gt;STM32 &amp;amp;&amp;nbsp;CubeMX HAL &amp;amp; I2C&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Мікросхема &lt;strong&gt;DS3231 &lt;/strong&gt;&quot;спілкується&quot; з мікроконтролером за допомогою&amp;nbsp;шини &lt;strong&gt;I2C&lt;/strong&gt;&amp;nbsp;(&amp;nbsp;послідовна шина даних для зв&apos;язку інтегральних схем, що використовує дві двохнаправлені лінії зв&apos;язку SDA і SCL ).&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Мені доводилось вже підключати цей RTC до МК Atmega... все працювало, при чому набагато краще&amp;nbsp;DS3107. Підключити ж&amp;nbsp;їх до STM32 та з&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;аодне &quot;поюзати I2C&quot;&lt;/span&gt; захотілось після перегляду н&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;а Ютубі &lt;/span&gt;&amp;nbsp;&quot;суперових&quot; відео уроків&amp;nbsp;від&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLJTlt64jBcCuRgAMGImQzxRlYdSKa5Ifk&quot;&gt;NarodStream&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;

&lt;p&gt;Отже уроки 8 та 9 (&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/watch?v=jaiamluHwVE&amp;amp;index=9&amp;amp;list=PLJTlt64jBcCuRgAMGImQzxRlYdSKa5Ifk&quot;&gt;https://www.youtube.com/&lt;/a&gt;&amp;nbsp;) ,&amp;nbsp;автор досить детально описує процес налаштувань I2C в программі Cube&amp;nbsp;MX від &lt;span style=&quot;color: rgb(106, 106, 106); font-family: arial, sans-serif; font-size: small; font-weight: bold; line-height: 18.2px; background-color: rgb(255, 255, 255);&quot;&gt;STMicroelectronics&lt;/span&gt;&amp;nbsp;., ми ж зупинимось лиш на деяких моментах...&lt;/p&gt;

&lt;p&gt;Створюємо проект, вибираємо наш МК STM32F030F4P6. Налаштування практично ідентичні&amp;nbsp;минулому -&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/blog/stm32_button_debounce_boremos_iz_drizhannjam_knopki/2016-06-20-10&quot;&gt;проекту&lt;/a&gt;, тільки вмикаємо ще I2C .&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/fff11.gif&quot; style=&quot;width: 600px; height: 431px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Далі створюємо проект, і тепер нам потрібні функції для роботи з I2C.&lt;/p&gt;

&lt;p&gt;У відеоуроках автор створив буфер&amp;nbsp;&lt;strong&gt;aTxBuffer &lt;/strong&gt;в який зчитував всі дані з мікросхеми RTC а далі з буфера вже витягував потрібні йому значення секунд,минут,годин і тд., причому тільки перших 7 байт.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/DS3231-DS3231S.gif&quot; style=&quot;cursor: default; color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; text-align: center; width: 507px; height: 442px; background-color: rgb(255, 255, 255);&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Цього безумовно достатньо для уроку , щоб зрозуміти &quot;принцип дії&quot;, та всеж на практиці&amp;nbsp;&amp;nbsp;зручніше зчитувати &quot;побайтно&quot; , наприклад зчитати&amp;nbsp;температуру ( 11Н та 12Н&amp;nbsp;)&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;temp1 = I2C_Read_Byte(hi2c1,(uint16_t)0xD0, 0x11);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; temp2 = I2C_Read_Byte(hi2c1,(uint16_t)0xD0, 0x12);&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Ось сама функція:&lt;/p&gt;

&lt;p&gt;//Прочитати байт&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;uint8_t I2C_Read_Byte(I2C_HandleTypeDef hi,uint8_t DEV_ADDR,uint8_t addr)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; uint8_t data = 0;&lt;br /&gt;
&amp;nbsp; uint8_t d;&lt;br /&gt;
&amp;nbsp; while (HAL_I2C_GetState(&amp;amp;hi) != HAL_I2C_STATE_READY);&lt;br /&gt;
&amp;nbsp; d = HAL_I2C_Master_Transmit(&amp;amp;hi, (uint16_t) DEV_ADDR, &amp;amp;addr, 1, (uint32_t) 10000);&lt;br /&gt;
&amp;nbsp; if ( d != HAL_OK) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; return d;&lt;br /&gt;
&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp; while (HAL_I2C_GetState(&amp;amp;hi) != HAL_I2C_STATE_READY);&lt;br /&gt;
&amp;nbsp; d = HAL_I2C_Master_Receive(&amp;amp;hi, (uint16_t) DEV_ADDR, &amp;amp;data, 1, (uint32_t) 10000);&lt;br /&gt;
&amp;nbsp; if ( d != HAL_OK) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; return d;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; return data;&lt;br /&gt;
}&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Теж саме тільки записати, наприклад записати дату ( 04Н )&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// ------set date------&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;date_var = RTC_ConvertFromBinDec(date_var);&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;I2C_Write_Byte(hi2c1,(uint16_t)0xD0,0x04,date_var);&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Також сама функція:&lt;/p&gt;

&lt;p style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;//Записати байт&lt;/p&gt;

&lt;p style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 100, 0);&quot;&gt;uint8_t I2C_Write_Byte(I2C_HandleTypeDef hi,uint8_t DEV_ADDR,uint8_t addr, uint8_t data)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; uint8_t buf[] = {addr, data};&lt;br /&gt;
&amp;nbsp; uint8_t d;&lt;br /&gt;
&amp;nbsp; while (HAL_I2C_GetState(&amp;amp;hi) != HAL_I2C_STATE_READY);&lt;br /&gt;
&amp;nbsp; d = HAL_I2C_Master_Transmit(&amp;amp;hi, (uint16_t) DEV_ADDR, buf, 2, (uint32_t) 10000);&lt;br /&gt;
&amp;nbsp; if ( d != HAL_OK) {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; return d;&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; return HAL_OK;&lt;br /&gt;
}&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px;&quot;&gt;&lt;span style=&quot;color:#000000;&quot;&gt;При цьому функції , ще вертає значення&amp;nbsp;&lt;span style=&quot;font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;HAL_OK , якщо все нормально...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;// **********************************************************************************************************************&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Ну і фото зборки&amp;nbsp;нашого&amp;nbsp;&lt;strong&gt;&quot;заліза&quot;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/IMG_20160724_210939.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/IMG_20160725_225332.jpg&quot; style=&quot;width: 400px; height: 534px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/IMG_20160814_114644.jpg&quot; style=&quot;width: 400px; height: 534px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/ds3231/IMG_20160816_213138-1-.jpg&quot; style=&quot;width: 400px; height: 534px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Ще вирішується питання , що використовувати в якость сигнала будильника (&amp;nbsp;PF0 ) ...&lt;/p&gt;

&lt;p&gt;Проект для &lt;strong&gt;KEIL &lt;/strong&gt;-&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/load/ds3231_stm32/1-1-0-40&quot;&gt;http://radiomanoff.at.ua/load/ds3231_stm32/1-1-0-40&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/stm32f030f4_ds3231_chasi_z_budilnikom/2016-08-16-11</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/stm32f030f4_ds3231_chasi_z_budilnikom/2016-08-16-11</guid>
			<pubDate>Tue, 16 Aug 2016 19:26:40 GMT</pubDate>
		</item>
		<item>
			<title>STM32 - button debounce.HAL&amp;CubeMX.Боремось із дрижанням кнопки.</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/IMG_20160620_212613.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Cьогодні я розповім, як я боровся із дрижанням кнопки, в розрізі мікроконтролера STM32 ( в данному випадку STM32F042F6P6&amp;nbsp;) та бібліотеки HAL&amp;nbsp;&amp;nbsp;&amp;amp; CubeMX. Будемо використовувати зовнішні переривання.&lt;/p&gt;

&lt;p&gt;Як відомо при натисканні на кнопку, зазвичай відбувається багаторазове замикання і розмикання її контактів.&amp;nbsp;Схематично це може бути представлене в такий спосіб:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/sample_bounce.gif&quot; style=&quot;width: 400px; height: 201px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Я не буду розповідати по всі свої експерименти в боротьбі із цим &quot;нехорошим&quot; явищем, тому зупинюсь лише на кінцевому варіанті, який мене влаштував.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Підключення кнопок&lt;/strong&gt;. Після різних варіантів підключення, я зупинився на &quot;фірмовому&quot; варіанті від S...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/IMG_20160620_212613.jpg&quot; style=&quot;width: 400px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Cьогодні я розповім, як я боровся із дрижанням кнопки, в розрізі мікроконтролера STM32 ( в данному випадку STM32F042F6P6&amp;nbsp;) та бібліотеки HAL&amp;nbsp;&amp;nbsp;&amp;amp; CubeMX. Будемо використовувати зовнішні переривання.&lt;/p&gt;

&lt;p&gt;Як відомо при натисканні на кнопку, зазвичай відбувається багаторазове замикання і розмикання її контактів.&amp;nbsp;Схематично це може бути представлене в такий спосіб:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/sample_bounce.gif&quot; style=&quot;width: 400px; height: 201px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Я не буду розповідати по всі свої експерименти в боротьбі із цим &quot;нехорошим&quot; явищем, тому зупинюсь лише на кінцевому варіанті, який мене влаштував.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Підключення кнопок&lt;/strong&gt;. Після різних варіантів підключення, я зупинився на &quot;фірмовому&quot; варіанті від STMicroelectronics, який застосований в платах Discovery:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/123.png&quot; style=&quot;width: 300px; height: 265px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Таку схему я зібрав для 4-ох кнопок, с такимиж номіналами резисторів та конденсаторів.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/IMG_20160620_213201.jpg&quot; style=&quot;cursor: default; color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; text-align: center; width: 400px; height: 300px; background-color: rgb(255, 255, 255);&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Як &amp;nbsp;я вже писав ми використовуємо зовнішні переривання.&amp;nbsp;Як відомо&amp;nbsp;&amp;nbsp;зовнішні переривання активізуються при зміни логічного рівня на нозі контролера.&amp;nbsp;У STM32 за зовнішні переривання відповідає &lt;strong&gt;EXTI&lt;/strong&gt; контролер.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Стартуємо&lt;/strong&gt;. Будемо створювати прошивку для нашого МК при допомозі програми &lt;strong&gt;CubeMX&lt;/strong&gt;. Цей інструмент, хоча і з&apos;явився вже давно, був мною незаслужено обділений увагою. Щож я думаю ми заповнимо цю прогалину...&lt;/p&gt;

&lt;p&gt;Відкриваємо програму, створюємо новий проект&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/s1.gif&quot; style=&quot;width: 500px; height: 377px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ми будемо&amp;nbsp; використовувати&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/blog/vidlagodzhuvalna_plata_dlja_stm32f0xx/2016-04-08-9&quot; style=&quot;color: rgb(7, 130, 193); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; text-align: center; background-color: rgb(255, 255, 255);&quot;&gt;відлагоджувальну&amp;nbsp;плату&amp;nbsp;для STM32F0xxFx&lt;/a&gt;&amp;nbsp;описану раніше, та в якості пограматора плату STM32F4 Discovery.&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/IMG_20160620_212727.jpg&quot; style=&quot;width: 500px; height: 375px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Вибираємо наш МК, в даному випадку у мене STM32F042F6P6.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/s2.gif&quot; style=&quot;width: 500px; height: 547px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Далі налаштовуємо наші піни. Спочатку ввімкнемо інтерфейс &lt;strong&gt;SWD&lt;/strong&gt;, звісно якщо ми будемо прошивати МК через програматор&lt;strong&gt; ST-Link&lt;/strong&gt;. Це ноги РА13,РА14. Якщо цього не зробити, то потрібно буде завжди при прошивці контролера натискати кнопку RESET, що не дуже зручно.&lt;/p&gt;

&lt;p&gt;Забіжу наперед, ми маємо підключити крім кнопок ще дисплей - потрібно 5 ніжок, нехай це будуть РА0,РА1,РА2,РА3,РА4. Також три піна виділимо для світлодіодів,&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;нехай це будуть РВ1,РF0,РF1. Всі ці ножки налаштовуються як &lt;strong&gt;GPIO_Output&lt;/strong&gt;:&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/s3.gif&quot; style=&quot;width: 500px; height: 375px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Налаштовуємо ножки під кнопки. Використовуємо піни PA5,PA6,PA7, вмикаємо на них контролер зовнішніх переривань &lt;strong&gt;EXTI&lt;/strong&gt;:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/s4.gif&quot; style=&quot;width: 500px; height: 376px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Тепер ще один момент. Як ми вже писали для реагування на натискання кнопки використовуємо&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;контролер зовнішніх переривань&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;EXTI.&lt;/strong&gt;&amp;nbsp;Обробник переривання спільний для цих тьох пінів -&amp;nbsp;&lt;strong&gt;EXTI4_15_IRQHandler&lt;/strong&gt;&amp;nbsp;. Тобто з 4 по 15 пін має одне зовнішнє переривання. Оскільки ми не плануємо обробляти два натискання одночасно, то в принципі це все&amp;nbsp;нас влаштовує.&lt;/p&gt;

&lt;p&gt;Забігаючи на перед опишу, як же ми будемо&amp;nbsp;боротись саме с дрижанням кнопки.&amp;nbsp;Для цього скористаємось затримкою на час перехідних процесів в кнопці, і щоб її організувати так щоб не зашкодити виконанню основної програми, застосуємо іще таймер , наприклад&amp;nbsp;&lt;strong&gt;TIM14&lt;/strong&gt;. Вмикаємо його:&lt;/p&gt;

&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/ss3.gif&quot; style=&quot;width: 500px; height: 359px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Далі заходимо на вкладку &lt;strong&gt;Clock Configuration&lt;/strong&gt;&amp;nbsp;і виставляємо частоту на якій буде працювати ядро та переферія контролера. в даному випадку я встановив максимально можливу для &lt;strong&gt;STM32F0xx&lt;/strong&gt;&amp;nbsp;- 48 MHz. Також все буде тактуватись від внутрішнього генератора &lt;strong&gt;HSI&lt;/strong&gt; . Хоча STM32F042 має &amp;nbsp;більш стабільний &lt;strong&gt;HSI48 &lt;/strong&gt;, призначений&amp;nbsp;для апаратного USB, всеж&amp;nbsp;використовуємо звичайний HSI, оскільки планується перенос проекта на STM32F030.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/ss1.gif&quot; style=&quot;width: 500px; height: 361px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Наступна вкладка &lt;strong&gt;Configuration&amp;nbsp;&lt;/strong&gt;. Розпочнем із того що ввімкнемо наші обробники переривань для&amp;nbsp;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;EXTI &lt;/strong&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;та&lt;/strong&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt; TIM14&lt;/strong&gt;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/ss4.gif&quot; style=&quot;width: 500px; height: 281px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/ss5.gif&quot; style=&quot;width: 500px; height: 323px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Далі налаштуємо наші піни, які використовуються для кнопок. Підтяжки не вмикаємо, оскільки вони в нас вже є (див.&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;вище&amp;nbsp;&lt;/span&gt;схему підключення кнопки). Також зовнішнє&amp;nbsp;переривання налаштовуємо по обох фронтах Rising &amp;amp; Filling, саме так сама досяглась сама стабільна робота...&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/ss6.gif&quot; style=&quot;width: 500px; height: 288px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/ss7.gif&quot; style=&quot;width: 500px; height: 354px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Далі налаштовуємо таймер&amp;nbsp;&lt;strong&gt;TIM14&lt;/strong&gt;. Прескалер виставляємо 47999, щоб таймер &quot;тікав&quot; з частотою 1 раз в мілісекунду. А період поставимо 100, в нашому випадку це буде 100 мс. Чому вибране це число? Приблизно такий час зазвичай складає дрижання кнопки.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/ss8.gif&quot; style=&quot;width: 500px; height: 285px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/button/ss9.gif&quot; style=&quot;width: 500px; height: 303px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ну ось тепер можна генерувати наш проект.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/ss10.gif&quot; style=&quot;width: 500px; height: 208px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Я люблю &lt;strong&gt;Keil&lt;/strong&gt;, тому саме цей компілятор я вибрав в налаштування CubeMX. 5-ту версію. &quot;Пустий&quot; проект &quot;заважив&quot; -&amp;nbsp;Program Size: Code=3564 RO-data=240 RW-data=8 ZI-data=1088 &amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/e1.gif&quot; style=&quot;width: 500px; height: 357px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Починаємо наповнювати проект.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Дисплей&lt;/strong&gt;. Для більшої інформативності прикріпив до проекта дисплей під назвою &lt;strong&gt;NOKIA 5110 &lt;/strong&gt;на контролері &lt;strong&gt;PCD8544&lt;/strong&gt;:&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F042/e2.gif&quot; style=&quot;width: 200px; height: 200px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Бібліотека для нього перша яка&amp;nbsp;&quot;нагуглилась&quot; з &quot;ногодригом&quot; -&amp;nbsp;&lt;a href=&quot;http://vg.ucoz.ru/forum/9-100-1&quot;&gt;http://vg.ucoz.ru/forum/9-100-1&lt;/a&gt;&amp;nbsp;Ми її трішки адаптували під себе та бібліотеку HAL.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color:#006400;&quot;&gt;// Управление линией LCD_CS&lt;br /&gt;
#define LCD_CS1 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, SCE, GPIO_PIN_SET)&lt;br /&gt;
#define LCD_CS0 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, SCE, GPIO_PIN_RESET)&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;// Управление линией LCD_RST&lt;br /&gt;
#define LCD_RST1 &amp;nbsp;HAL_GPIO_WritePin(LCD_PORT, RST, GPIO_PIN_SET)&lt;br /&gt;
#define LCD_RST0 &amp;nbsp;HAL_GPIO_WritePin(LCD_PORT, RST, GPIO_PIN_RESET)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;// Управление линией LCD_DC&lt;br /&gt;
#define LCD_DC1 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, DC, GPIO_PIN_SET)&lt;br /&gt;
#define LCD_DC0 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, DC, GPIO_PIN_RESET)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;// Управление линией LCD_SCK&lt;br /&gt;
#define LCD_SCK1 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, SCLK, GPIO_PIN_SET)&lt;br /&gt;
#define LCD_SCK0 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, SCLK, GPIO_PIN_RESET)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;// Управление линией LCD_MOSI&lt;br /&gt;
#define LCD_MOSI1 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, MOSI, GPIO_PIN_SET)&lt;br /&gt;
#define LCD_MOSI0 &amp;nbsp; HAL_GPIO_WritePin(LCD_PORT, MOSI, GPIO_PIN_RESET)&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Підключення пінів прописане в файлі&amp;nbsp;&lt;strong&gt;pcd8544.h&lt;/strong&gt;&amp;nbsp;:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;color:#006400;&quot;&gt;#define SCLK &amp;nbsp; GPIO_PIN_0&lt;br /&gt;
#define MOSI &amp;nbsp; GPIO_PIN_1&lt;br /&gt;
#define DC &amp;nbsp; &amp;nbsp; GPIO_PIN_2&lt;br /&gt;
#define RST &amp;nbsp; &amp;nbsp;GPIO_PIN_3&lt;br /&gt;
#define SCE &amp;nbsp; &amp;nbsp;GPIO_PIN_4&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;color:#006400;&quot;&gt;#define LCD_PORT GPIOA&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;На початку головного цикла вставимо &quot;заставочку&quot;. А так будемо на екрані відслідковувати стан світлодіодів&amp;nbsp;LED-ON та&amp;nbsp;LED-OFF . Саміж світлодіоди будуть вмикатись кнопками. Поїхали...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Реалізація&lt;/strong&gt;. Алгоритм такий&amp;nbsp;&lt;/p&gt;

&lt;p&gt;- спрацьовує зовнішнє переривання від кнопки;&lt;/p&gt;

&lt;p&gt;-в обробнику переривання &lt;strong&gt;EXTI4_15_IRQHandler&amp;nbsp;&lt;/strong&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;вимикаємо &lt;/span&gt;зовнішнє переривання &lt;strong&gt;ЕХТІ&amp;nbsp;&lt;/strong&gt;та &lt;span style=&quot;color:#FF0000;&quot;&gt;вмикаємо &lt;/span&gt;таймер &lt;strong&gt;ТІМ14&lt;/strong&gt;;&lt;/p&gt;

&lt;p&gt;-таймер &lt;span style=&quot;color:#FF0000;&quot;&gt;відпрацьовує &lt;/span&gt;100 мс і в обробнику&amp;nbsp;&lt;strong&gt;TIM14_IRQHandler &lt;/strong&gt;&lt;span style=&quot;color:#FF0000;&quot;&gt;провіряє&lt;/span&gt;. яка кнопка підтянута до &quot;+&quot;;&lt;/p&gt;

&lt;p&gt;-в &lt;span style=&quot;color:#FF0000;&quot;&gt;залежності &lt;/span&gt;від натисненої кнопки засвічується свій світлодіод та виводиться відповідний&amp;nbsp;напис на екрані дисплея;&lt;/p&gt;

&lt;p&gt;Нас цікавить файл&amp;nbsp;&lt;strong&gt;stm32f0xx_it.с&lt;/strong&gt;&amp;nbsp;, тут прописується що ми будемо робити в перериванні.&lt;/p&gt;

&lt;p&gt;Перша функція обробник переривання&amp;nbsp;&lt;strong&gt;EXTI4_15_IRQHandler&lt;/strong&gt;&amp;nbsp; , робимо те про, що ми писали вище:&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;em&gt;&amp;nbsp; HAL_NVIC_DisableIRQ(EXTI4_15_IRQn); &amp;nbsp; //&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;вимикаємо&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;ЕХТІ&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&lt;em&gt;&amp;nbsp; HAL_TIM_Base_Start_IT(&amp;amp;htim14); &amp;nbsp;//&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;вмикаємо&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;ТІМ14&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;Наступна функція оброник перериваня&amp;nbsp;&lt;strong&gt;TIM14_IRQHandler&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp; HAL_TIM_Base_Stop_IT(&amp;amp;htim14);&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 12px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;color: rgb(0, 100, 0);&quot;&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;вимикаємо&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;ТІМ14&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt; // =====&amp;nbsp;тут наш код обробки=========&lt;/span&gt;&lt;br /&gt;
&lt;em&gt;&lt;span style=&quot;font-size:12px;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color:#006400;&quot;&gt;&amp;nbsp;HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 12px; background-color: rgb(255, 255, 255);&quot;&gt;&lt;span style=&quot;color: rgb(0, 100, 0);&quot;&gt;&lt;em&gt;&amp;nbsp;//&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;вмикаємо&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;ЕХТІ&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;От і все&lt;/strong&gt;. Компілюємо проект , прошиваємо МК . Все працює бездоганно.&lt;/p&gt;

&lt;p&gt;Сам проект в &lt;strong&gt;Keil 5&amp;nbsp;&lt;/strong&gt;-&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/load/stm32f0xx_button/1-1-0-39&quot;&gt;http://radiomanoff.at.ua/load/stm32f0xx_button/1-1-0-39&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Та невеличке відео, за створення якого дуже дякую моєму сину Ярославу....&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;180&quot; src=&quot;https://radiomanoff.at.ua//www.youtube.com/embed/ljuI_zUvYW0&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/stm32_button_debounce_boremos_iz_drizhannjam_knopki/2016-06-20-10</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/stm32_button_debounce_boremos_iz_drizhannjam_knopki/2016-06-20-10</guid>
			<pubDate>Mon, 20 Jun 2016 19:12:15 GMT</pubDate>
		</item>
		<item>
			<title>Відлагоджувальна плата для STM32F0xx</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/board/HPIM3763l.jpg&quot; style=&quot;width: 300px; height: 265px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ще один варіант відлагоджувальної плати для &lt;strong&gt;STM32F0xxFx&lt;/strong&gt;. Все змонтовано на шматкові бакелітової макетної плати розміром&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;45х40 мм, який в свою чергу вирізано із макетної плати 5х7 см, від наших китайських друзів.&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/board/10-sht-lot-diy-prototip-bumagi-pechatnoj-platy-uni.jpg&quot; style=&quot;width: 200px; height: 199px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Плата провірена з мікроконтролерами &lt;strong&gt;STM32F030F4&lt;/strong&gt; та &lt;strong&gt;STM32F042F6&lt;/strong&gt;.&lt;/span&gt;&lt;/p...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/board/HPIM3763l.jpg&quot; style=&quot;width: 300px; height: 265px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Ще один варіант відлагоджувальної плати для &lt;strong&gt;STM32F0xxFx&lt;/strong&gt;. Все змонтовано на шматкові бакелітової макетної плати розміром&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;45х40 мм, який в свою чергу вирізано із макетної плати 5х7 см, від наших китайських друзів.&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/board/10-sht-lot-diy-prototip-bumagi-pechatnoj-platy-uni.jpg&quot; style=&quot;width: 200px; height: 199px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;Плата провірена з мікроконтролерами &lt;strong&gt;STM32F030F4&lt;/strong&gt; та &lt;strong&gt;STM32F042F6&lt;/strong&gt;.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;// ******************************************************************************************&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Живлення&lt;/strong&gt;.Заживлюється плата від USB, стабілізатор 3,3В виконаний на МС &lt;strong&gt;1117&lt;/strong&gt; (знаходиться знизу плати). Також стоїть джампер на підключення АЦП піна &lt;strong&gt;VDDA&lt;/strong&gt; до + живлення. На практиці з&apos;ясувалось, що без цього не йде прошивка і дебаг по &lt;strong&gt;SWD&lt;/strong&gt;. Обов&apos;язково повинні бути присутні ємності 0,1 мкФ на пінах &lt;strong&gt;VDD&lt;/strong&gt; і &lt;strong&gt;VDDA&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Також організована індикація наявності живлення на зеленому світлодіоді. Та додаткові піни +5В , +3В, GND, для підключення додаткового обвісу МК.&lt;/p&gt;

&lt;p&gt;// *******************************************************************************************&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&quot;Начинка&quot; плати&lt;/strong&gt;. При таких &amp;nbsp;розмірах плати, вдалось розмістити слідуюче:&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;Reset&lt;/strong&gt; ,&amp;nbsp;кнопка,резистор підтяжки на + та ємність 0,1 мкФ на масу;&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;SWD&lt;/strong&gt; , інтерфейс програмування (піни&amp;nbsp;&lt;strong&gt;SWCLK,SWDIO,GND&lt;/strong&gt;);&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;USB&lt;/strong&gt; , крім функціїї заживлення, джамперами можна підключити сам інтерфейс (для мікроконтролерів з апаратним USB,&amp;nbsp;серії&amp;nbsp;&lt;strong&gt;STM32F042Fx&lt;/strong&gt;);&lt;/p&gt;

&lt;p&gt;- &lt;strong&gt;LED&lt;/strong&gt; , 5 світлодіодів з довільним підключенням;&lt;/p&gt;

&lt;p&gt;- залишене місце під кварцевий резонатор, наприклад на 8 МГц (на фото кварца нема);&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/board/HPIM3768L.jpg&quot; style=&quot;width: 302px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/board/HPIM3767.jpg&quot; style=&quot;width: 300px; height: 242px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/STM32F030F4P6/board/HPIM3766.jpg&quot; style=&quot;width: 300px; height: 206px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/vidlagodzhuvalna_plata_dlja_stm32f0xx/2016-04-08-9</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/vidlagodzhuvalna_plata_dlja_stm32f0xx/2016-04-08-9</guid>
			<pubDate>Fri, 08 Apr 2016 19:40:23 GMT</pubDate>
		</item>
		<item>
			<title>TFT-shield (2.4) &amp; STM32F103C8</title>
			<description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/HPIM3784.jpg&quot; style=&quot;width: 400px; height: 288px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Нарешті з&apos;явилась вільна хвилина. Хочу закінчити &quot;епопею&quot; із &lt;strong&gt;&amp;nbsp;TFT-shield (2.4)&lt;/strong&gt; китайського виробництва. Як з&apos;ясувалось в подібному форм-факторі може бути, як&amp;nbsp;дисплей з контролером -&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/index/tft_shield_2_4_stm32l_discovery/0-73&quot;&gt;ILI9325&lt;/a&gt;, так і з контролером&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/blog/tft_shield_2_4_stm32l_discovery_part_2/2015-09-14-4&quot;&gt;ILI9341&lt;/a&gt;&amp;nbsp;. Зараз зупинимось на другому варіанті &lt;strong&gt;ILI9341&amp;nbsp;&lt;/strong&gt;і підключенні його до МК &lt;strong&gt;STM32F103C8&lt;/strong&gt; . Ну і звісно, дамо робочий код для Keil.&lt;/p&gt;

&lt;p&gt;В якості &quot;заліза&quot; мова піде, про плати китайського виробництва іменуємі в мережі як Maple Mini (це&amp;nbsp;із опери ARDUINO), чи щось в цьому роді... Основна перевага цих плат - ціна. На платі встановлений&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 5...</description>
			<content:encoded>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/HPIM3784.jpg&quot; style=&quot;width: 400px; height: 288px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Нарешті з&apos;явилась вільна хвилина. Хочу закінчити &quot;епопею&quot; із &lt;strong&gt;&amp;nbsp;TFT-shield (2.4)&lt;/strong&gt; китайського виробництва. Як з&apos;ясувалось в подібному форм-факторі може бути, як&amp;nbsp;дисплей з контролером -&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/index/tft_shield_2_4_stm32l_discovery/0-73&quot;&gt;ILI9325&lt;/a&gt;, так і з контролером&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/blog/tft_shield_2_4_stm32l_discovery_part_2/2015-09-14-4&quot;&gt;ILI9341&lt;/a&gt;&amp;nbsp;. Зараз зупинимось на другому варіанті &lt;strong&gt;ILI9341&amp;nbsp;&lt;/strong&gt;і підключенні його до МК &lt;strong&gt;STM32F103C8&lt;/strong&gt; . Ну і звісно, дамо робочий код для Keil.&lt;/p&gt;

&lt;p&gt;В якості &quot;заліза&quot; мова піде, про плати китайського виробництва іменуємі в мережі як Maple Mini (це&amp;nbsp;із опери ARDUINO), чи щось в цьому роді... Основна перевага цих плат - ціна. На платі встановлений&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;МК&amp;nbsp;&lt;/span&gt;&lt;strong style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;STM32F103C8.&lt;/strong&gt;&amp;nbsp;Він має обєм флеша 64 кВ, та може працювати на частоті до 72 &amp;nbsp;МГц.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/stm32f103c8t6-stm32-minimalnaja-sistemnaja-plata-m.jpg&quot; style=&quot;width: 300px; height: 300px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Спочатку я спробував переробити бібліотеку від&amp;nbsp;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://radiomanoff.at.ua/index/tft_shield_2_4_stm32l_discovery/0-73&quot; style=&quot;color: rgb(7, 130, 193); font-family: sans-serif, Arial, Verdana, &apos;Trebuchet MS&apos;; font-size: 13px; line-height: 20.8px; background-color: rgb(255, 255, 255);&quot;&gt;ILI9325&lt;/a&gt;&amp;nbsp;, під &lt;strong&gt;ILI9341&amp;nbsp;&lt;/strong&gt;. Та повністю перенести всі функціі мені не вдалось, так само як і прочитатти ID дисплея. А далі все це задоволення було закинуто в &quot;довгий ящик&quot;, поки на очі не потрапив ось цей -&amp;nbsp;&lt;a href=&quot;http://eugenemcu.nichost.ru/articles/reviews/247-ili9341-2-4-inch-lcd&quot;&gt;матеріал&lt;/a&gt;&amp;nbsp;. Там можна знайти код від китайських продавців &quot;DIY-крамом&quot;...для Ардуіни та STM32, а також деяка технічна документація на дисплей.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Перше&lt;/strong&gt;, що я зробив ,це &quot;пересадив&quot; код з STM32F103RCT6&amp;nbsp;на&amp;nbsp;STM32F103С8T6 під Keil&amp;nbsp;5.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Друге&lt;/strong&gt;. Зробив саморобний&amp;nbsp;перехідник для шилда, на &quot;нормальні&quot; провода&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/HPIM3762.jpg&quot; style=&quot;width: 400px; height: 304px;&quot; /&gt;&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/HPIM3787.gif&quot; style=&quot;width: 400px; height: 304px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Підєднав до плати МК. Зробив окремо живлення 3,3В на МС 1117, для дисплея, оскільки вмонттований в плату МК не надто потужний. Заживлено стабілізатор&amp;nbsp;від USB.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/HPIM3771-001.jpg&quot; style=&quot;width: 400px; height: 304px;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Запускаємо... В такому вигляді код, на реальному STM32,&amp;nbsp;запускався через раз. Не завжди проходила ініціалізіція. Звіривши цю функцію із datasheet я побачив багато &quot;лишнього&quot; в кодові. При цьму код для Arduino(Atmega328) працював завжди і без глюків. Вихід було знайдено, функція ініціалізаціі була списана із Ардуіно-проекта. Все запрацювало, &quot;глюки відійшли&quot;...&lt;/p&gt;

&lt;p&gt;Далі слід звернути увагу на функцію установки параметрів дисплея. Оскільки в &lt;strong&gt;lcd.h&lt;/strong&gt; у нас&amp;nbsp;&lt;strong&gt;#define USE_HORIZONTAL &amp;nbsp; 1&lt;/strong&gt;, то орієнтація дисплея горизонтальна. В мене нормальні (не зеркальні букви) получились для регістра &lt;strong&gt;Memory Access Control (36h) &lt;/strong&gt;при&amp;nbsp;значенні&amp;nbsp;&lt;strong&gt;0xEC&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;color:#006400;&quot;&gt;void LCD_SetParam(void)&lt;br /&gt;
{ &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.wramcmd=0x2C;&lt;br /&gt;
#if USE_HORIZONTAL==1 &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.dir=1;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.width=320;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.height=240;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.setxcmd=0x2A;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.setycmd=0x2B;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;//LCD_WriteReg(0x36,0x6C);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;LCD_WriteReg(0x36,0xEC);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;span style=&quot;color:#006400;&quot;&gt;#else&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.dir=0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.width=240;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.height=320;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.setxcmd=0x2A;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;lcddev.setycmd=0x2B;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;LCD_WriteReg(0x36,0xC9);&lt;br /&gt;
#endif&lt;br /&gt;
}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;В кінці&amp;nbsp;datasheet , в пункті &amp;nbsp;&lt;strong&gt;9.3. MCU to memory write/read direction&amp;nbsp;&lt;/strong&gt;(стр.207-208) - дано пояснення для різних варіантів орієнтаціі дисплея.&lt;/p&gt;

&lt;p&gt;І на останок робочий демо проект для &lt;strong&gt;Keil 5&lt;/strong&gt; -&amp;nbsp;&lt;a href=&quot;http://radiomanoff.at.ua/load/stm32f103_tft2_4/1-1-0-38&quot;&gt;http://radiomanoff.at.ua/load/stm32f103_tft2_4/1-1-0-38&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://radiomanoff.at.ua/ILI9341/HPIM3777.jpg&quot; style=&quot;width: 400px; height: 264px;&quot; /&gt;&lt;/p&gt;</content:encoded>
			<link>https://radiomanoff.at.ua/blog/tft_shield_2_4_stm32f103c8/2016-04-07-8</link>
			<dc:creator>rastamanoff</dc:creator>
			<guid>https://radiomanoff.at.ua/blog/tft_shield_2_4_stm32f103c8/2016-04-07-8</guid>
			<pubDate>Thu, 07 Apr 2016 11:05:47 GMT</pubDate>
		</item>
	</channel>
</rss>