CoX Peripheral Library - первый и последний опыт

В поисках как облегчить себе жизнь нашел CoX Peripheral Library. Библиотека разной периферии от Coocox. Задумка хорошая, но информации об ее использовании на удивление мало. Видимо причина в том… см. ниже вобщем. ))

За основу возьмем пример 16x2 character LCD driven by HD44780 use I2C interface.


Создаем проект как обычно, но с выбором компонентов не спешим, а выбираем как на рисунках ниже:


Для быстроты можно набрать «1602» в строке поиска


В main.c помещаем следующий код

#include "xhw_types.h"
#include "xsysctl.h"
#include "LCD1602IIC.h"

int main(void)
{
	unsigned long ulSysClk;
	unsigned char i=0;
	xSysCtlClockSet(72000000,  xSYSCTL_OSC_MAIN | xSYSCTL_XTAL_8MHZ);
	xSysCtlDelay(10000);

	LCD1602Init(100000);
	ulSysClk = xSysCtlClockGet();

	LCD1602PrintString(0,0, "easyelectronics.ru");
	xSysCtlDelay(ulSysClk/4);
	LCD1602BacklightOff();
	xSysCtlDelay(ulSysClk/4);

	LCD1602BacklightOn();
	LCD1602PrintString(1,4,"Hello world!");
	xSysCtlDelay(ulSysClk/4);

	return 0;
}


Подключаем к индикатору питание +5, землю, PB6 к SCL, PB7 к SDA. Запускаем и… не работает. Вот дела. ((

Но не расстраиваемся и вспоминаем что исходники лучший друг программиста. Находим и открываем файл LCD1602IIC.c

void LCD1602Init(unsigned long ulCLK)
{
    IICInit(ulCLK);

    LCD1602Dev.ucDevAddr=0x20;
    LCD1602Dev.ucNumRows=2;
    LCD1602Dev.ucNumCols=16;
    IICDelay(50000);


Видим что адрес устройства 0x20, а во времена ардуинских экспериментов я выяснил что адрес должен быть 0x27. Исправляем, запускаем:


Но сами понимаете, такие библиотеки нам не нужны, если нельзя передать самые ключевые параметры и приходится допиливать напильником. Кроме того список поддерживаемых микроконтроллеров довольно скромен. Из линейки STM32 это только STM32F10x, а меня очень волнует 20-ногий STM32F050. ))

Думаю на этом опыты с COX можно считать законченными. Жаль, задумка мне понравилась.
  • 0
  • 28 ноября 2013, 17:56
  • aliaksei

Комментарии (8)

RSS свернуть / развернуть
1 только адрес неправильный и Вам не нравится уже прямо либа? а с какой планеты ОС будете? Первый раз что-ли?
0
Сегодня адрес здесь, завтра что-то другое там. Не, библиотеки должны облегчать нашу жизнь, а не усложнять. Я профессионально отношусь осторожно к таким мелочам, первым признакам будущих проблем.
0
Дорогу осилит идущий. Если каждый раз сходить с тропинки, потому что на ней ступенька не такого размера, как мне хотелось бы… Эхх, свою тропу протоптать сложнее, думаю.
0
Да, возможно я погорячился. В отличии от «большого брата» здесь не такой выбор либ чтобы привередниччать ))
0
Ну можт тот кто писал этот кусок библиотеки имел экран с и2ц контроллером имеющим как раз адрес 0x20? Ну бывает такое, и сразу открещиваться от продукта я бы не советовал. Надо понимать что все в наших с вами руках, никто кроме нас и т.д. и т.п :)
0
Альтернативы?
0
Не тратить время и учить стандартную перефирию. ))
0
Да, либы кривые. Но это хороший материал для дальнейшей обработки напильником. Когда-то, когда еще от ST не было хорошей библиотеки USB-CDC я допилил коксовскую от нювотона, и работало как часы. К тому же никто не мешает запилить свою либу добавить в репозиторий- другие кокосовцы будут только благодарны.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.