как завести LCD 1602B в CooCox? pi_pio.h?
разбирался с di_tlcd.h
Вот пример из CooCox.
Мне не понятно как при заполнение структуры &LCD инициализируются выводы для подключения LCD? &pi_pio — в примере ни где не заполняется.
Вот мигалка для светодиода на плате STM32-Discovery и тут в pi_pio явно указывается что куда подавать на выход, с этим разобрался.
Вот пример из CooCox.
Мне не понятно как при заполнение структуры &LCD инициализируются выводы для подключения LCD? &pi_pio — в примере ни где не заполняется.
#include "pi_pio.h"
#include "di_tlcd.h"
/* Define a LCD1602 Device */
const TLCD_Dev LCD0 = {
&pi_pio, // Using PIO Interface
COX_PIN(2, 2), // RS : P2.2
COX_PIN(2, 3), // RW : P2.3
COX_PIN(2, 4), // E : P2.4
COX_PIN(2, 5), // DB7 : P2.5
COX_PIN(2, 6), // DB6 : P2.6
COX_PIN(2, 7), // DB5 : P2.7
COX_PIN(2, 8), // DB4 : P2.8
0,0,0,0, // DB0-DB3 : Not used
0, // 4-Bit Mode
};
void lcd_test(void)
{
Text_Lcd_Init (&LCD0);
Text_Lcd_Clear (&LCD0);
Text_Lcd_Puts (&LCD0, "Hello Word ");
Text_Lcd_Locate (&LCD0, 1, 0);
Text_Lcd_Puts (&LCD0, " -Coocox");
}
Вот мигалка для светодиода на плате STM32-Discovery и тут в pi_pio явно указывается что куда подавать на выход, с этим разобрался.
#include"stm32_pio.h"
void Delay(volatile uint32_t nCount) {
for (; nCount != 0; nCount--);
}
int main(void) {
COX_PIO_Dev LED = COX_PIN(2,9);
// COX_PIO (номер порта, номер контакте(пина))
//Номер порта = A = 0, B=1, C=2... и.т.д
//Номер пина - один из 16 котактов порта
pi_pio.Init(LED); //Инициализируем порта A, контато 9
pi_pio.Dir(LED,1);// Устнаваливаем порта А, контак 9 на выход
while (1) {
pi_pio.Out(LED,1); //порт А, контак 9 = 1
Delay(0x4ffff);
pi_pio.Out(LED,0); //порт А, контак 9 = 0
Delay(0x0FFFF);
}
}
STM32 RS-485 Modbus RTU - запуск на дискавери
Пока никак руки не доходят до написания второй части материала по Modbus и случился тупняк с использованием eeprom типа 24C64, и поэтому сегодня я решил убить сразу двух, нет даже трех зайцев…
1. Запустить проект из предыдущей статьи на плате дискавери и дать возможность тем кто имеет эту плату тоже участвовать (если конечно это интересно)
2. Сделать небольшую плату с RS485 для дискавери
3. До кучи на эту же плату поставить eeprom и поиграться с ней (тут наметились сдвиги...)
Ну и проверить все это в работе.
Читать дальше
1. Запустить проект из предыдущей статьи на плате дискавери и дать возможность тем кто имеет эту плату тоже участвовать (если конечно это интересно)
2. Сделать небольшую плату с RS485 для дискавери
3. До кучи на эту же плату поставить eeprom и поиграться с ней (тут наметились сдвиги...)
Ну и проверить все это в работе.
Читать дальше
STM32-VLDiscovery: мой вариант быстрого старта.
Внимание, статья обновлена. См. примечание в конце.
***
Предисловие.
Некоторое время назад, я, как и многие другие, принял участие в акции EBV, заказав себе упомянутую в названии платку. Моя первая попытка поковырять ее не увенчалась успехом, да и буквально одновременно с ней мне в руки попал LaunchPad… Одним словом, лежал STM32-Discovery буквально до сегодняшнего дня и пылился. Но в конце концов я взялся за него с твердым намерением наконец-то помигать светодиодом во что бы то ни стало. Естесственно, прежде всего я стал читать уже написанное на русском и английском. Однако, несмотря на большое количество статей, все они показались мне слишком разрозненными, а некоторые из более цельных — излишне объемными для начала. Возможно, я плохо искал, но так нигде и не нашел текста, прямо и без тучи лишней информации повествующего о том, как с нуля помигать светодиодом на STM32-Discovery. Полезные части встречались в разных местах, и вот я решил объединить их в по возможности лаконичное и законченное повествование.
Читать дальше
***
Предисловие.
Некоторое время назад, я, как и многие другие, принял участие в акции EBV, заказав себе упомянутую в названии платку. Моя первая попытка поковырять ее не увенчалась успехом, да и буквально одновременно с ней мне в руки попал LaunchPad… Одним словом, лежал STM32-Discovery буквально до сегодняшнего дня и пылился. Но в конце концов я взялся за него с твердым намерением наконец-то помигать светодиодом во что бы то ни стало. Естесственно, прежде всего я стал читать уже написанное на русском и английском. Однако, несмотря на большое количество статей, все они показались мне слишком разрозненными, а некоторые из более цельных — излишне объемными для начала. Возможно, я плохо искал, но так нигде и не нашел текста, прямо и без тучи лишней информации повествующего о том, как с нуля помигать светодиодом на STM32-Discovery. Полезные части встречались в разных местах, и вот я решил объединить их в по возможности лаконичное и законченное повествование.
Читать дальше
Продолжаю мучать ARM...
Вчера/сегодня разобрался с семисегментными индикаторами (пока только на 1 разряд), энкодером и пьезопищалкой.
Энкодер по-началу отказывался работать: пропускал шаги или наоборот отсчитывал лишние. Решилось корректировкой алгоритма (тот, что был в статье Ди так и не заработал — написал по-своему) и кондерами по 1мкФ для подавления дребезга.
Есть у меня один вопрос к тем, кто работает с дискавери:
После выхода из режима отладки, дискавери подвисает и возвращает её к жизни только очередной запуск по F5 из режима отладки. Я конечно не против, но хотелось-бы иметь возможность запустить прогу, сразу после заливки в МК. Без входа в отладочный режим.
(Все вышесказаное относится к Keil uVision4)
Читать дальше
Энкодер по-началу отказывался работать: пропускал шаги или наоборот отсчитывал лишние. Решилось корректировкой алгоритма (тот, что был в статье Ди так и не заработал — написал по-своему) и кондерами по 1мкФ для подавления дребезга.
Есть у меня один вопрос к тем, кто работает с дискавери:
После выхода из режима отладки, дискавери подвисает и возвращает её к жизни только очередной запуск по F5 из режима отладки. Я конечно не против, но хотелось-бы иметь возможность запустить прогу, сразу после заливки в МК. Без входа в отладочный режим.
(Все вышесказаное относится к Keil uVision4)
Читать дальше
Наконец-то добрался до ARM..
Первым делом помигал диодами на STM32 Discovery.
Завтра буду нападать на семисегментные индикаторы и прочую мелочь. Потом UART и т.д.
Все. Пойду спать :)
while(1)
{
if(STM32vldiscovery_PBGetState(BUTTON_USER) == 1)
{
STM32vldiscovery_LEDOn(LED3); //Включить
STM32vldiscovery_LEDOff(LED4);
}
else
{
STM32vldiscovery_LEDOff(LED3);//Выключить
STM32vldiscovery_LEDOn(LED4);
}
}
}
Завтра буду нападать на семисегментные индикаторы и прочую мелочь. Потом UART и т.д.
Все. Пойду спать :)
Воспроизведение звука на STM32-Discovery при помощи Speex
Многие уже воспользовались известным конкурсом, и заказали себе плату STM32-Discovery. Я тоже заказал себе такую. Захотелось сделать на ее основе какую либо конструкцию. Меня заинтересовал AN2812 от ST, в котором описывалось воспроизведение звука с использованием библиотеки Speex для STM32. Однако недостатком аппноута было то, что в нем использовалась stm32f103, более мощная чем stm32f100, установленная в discovery. Также аппноут рассчитан на работу с более сложной отладочной платой. Поскольку я только начинал изучать STM32 (это мой первый проект, до этого я только светодиодом мигал), я решил не пытаться запустить код аппноута, а собрать весь проект с нуля. Проект был создан в IAR.
Вид получившейся конструкции:

Читать дальше
Вид получившейся конструкции:

Читать дальше