как завести LCD 1602B в CooCox? pi_pio.h?

разбирался с di_tlcd.h

Вот пример из 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
  • 22 августа 2011, 23:38
  • GYUR22
  • 2

Базовая плата для STM32 Discovery

Намутил себе тут базовую плату с переферией для STM32 Discovery.




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

STM32-VLDiscovery: мой вариант быстрого старта.

Внимание, статья обновлена. См. примечание в конце.

***

Предисловие.

Некоторое время назад, я, как и многие другие, принял участие в акции EBV, заказав себе упомянутую в названии платку. Моя первая попытка поковырять ее не увенчалась успехом, да и буквально одновременно с ней мне в руки попал LaunchPad… Одним словом, лежал STM32-Discovery буквально до сегодняшнего дня и пылился. Но в конце концов я взялся за него с твердым намерением наконец-то помигать светодиодом во что бы то ни стало. Естесственно, прежде всего я стал читать уже написанное на русском и английском. Однако, несмотря на большое количество статей, все они показались мне слишком разрозненными, а некоторые из более цельных — излишне объемными для начала. Возможно, я плохо искал, но так нигде и не нашел текста, прямо и без тучи лишней информации повествующего о том, как с нуля помигать светодиодом на STM32-Discovery. Полезные части встречались в разных местах, и вот я решил объединить их в по возможности лаконичное и законченное повествование.



Читать дальше
  • +7
  • 30 апреля 2011, 22:46
  • _YS_

Продолжаю мучать ARM...

Вчера/сегодня разобрался с семисегментными индикаторами (пока только на 1 разряд), энкодером и пьезопищалкой.



Энкодер по-началу отказывался работать: пропускал шаги или наоборот отсчитывал лишние. Решилось корректировкой алгоритма (тот, что был в статье Ди так и не заработал — написал по-своему) и кондерами по 1мкФ для подавления дребезга.

Есть у меня один вопрос к тем, кто работает с дискавери:
После выхода из режима отладки, дискавери подвисает и возвращает её к жизни только очередной запуск по F5 из режима отладки. Я конечно не против, но хотелось-бы иметь возможность запустить прогу, сразу после заливки в МК. Без входа в отладочный режим.
(Все вышесказаное относится к Keil uVision4)



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

Наконец-то добрался до ARM..

Первым делом помигал диодами на STM32 Discovery.


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.
Вид получившейся конструкции:




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