WH1602B запущен на STM32
Переделал без использования библиотеки stm32f10x_gpio.h. Вместо 4 битной шины использую 8 битную, так проще. Ни как не могу запонить #if #endif, там что добавляйте если это надо.
Теперь нормально запускается.
Читать дальше
Теперь нормально запускается.
Читать дальше
ИНТЕРФЕЙСЫ ПЕРИФЕРИЙНЫХ УСТРОЙСТВ
Нашёл в гугле.
books.ifmo.ru/book/pdf/728.pdf
там по моеиу и pci есть, не смотрел ещё.
Что-то мне гугл начинается нравится.
ftp://ftp.ce.cctpu.edu.ru/ — куча инфы на русском.
books.ifmo.ru/book/pdf/728.pdf
Ключев А.О., Ковязина Д.Р., Петров Е.В., Платунов А.Е. Интерфейсы
периферийных устройств. – СПб.: СПбГУ ИТМО, 2010. – 290 с.
Учебное пособие посвящено вопросам организации интерфейсов
периферийных устройств. В пособии рассматриваются: организация системы
ввода-вывода, способы обмена информацией между устройствами
вычислительной системы, аппаратные интерфейсы вычислительных систем. В
приложениях к учебному пособию помещены справочные данные и задания к
выполнению лабораторных работ с использованием учебного лабораторного
стенда SDK-1.1.
Для подготовки бакалавров и магистров по направлению 23.01.00
«Информатика и вычислительная техника»; по программам подготовки
магистров 23.01.00.33 «Проектирование встроенных вычислительных систем» и
23.01.00.34 «Системотехника интегральных вычислителей. Системы на
кристалле».
Рекомендовано к печати ученым советом факультета КТиУ, протокол №15
от 16.11.2010 г.
там по моеиу и pci есть, не смотрел ещё.
Что-то мне гугл начинается нравится.
ftp://ftp.ce.cctpu.edu.ru/ — куча инфы на русском.
Перевод документации.
Сегодня зарегестрровался на вы+ в гугле, потом дотопал по ссылкам до документов гугла, в онлайн редакторе документов в «инструменты» есть «перевести документ», так вот, скопипастенный даташит можно «переводить» чють ли не одним махом.
Если разделить pdf на маленькие куски то и файлами можно попробвать через загрузку в гугл переводчике.
Если разделить pdf на маленькие куски то и файлами можно попробвать через загрузку в гугл переводчике.
как завести 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 Discovery
Раз уж модно стало делать мигалки, тогда продолжим на CooCox.
Описание функции в прикреплённом файле. Использовался материал we.easyelectronics.ru/STM32/rukovodstvo-k-bystromu-startu-po-rabote-s-periferiey-stm32f10x.html
Второй день владения stm32-discovery прошёл успешно, светодиоды замигали:-) теперь бы ещё дальше пойти… АЦП, LCD, энкодер блин.
Описание функции в прикреплённом файле. Использовался материал we.easyelectronics.ru/STM32/rukovodstvo-k-bystromu-startu-po-rabote-s-periferiey-stm32f10x.html
Второй день владения stm32-discovery прошёл успешно, светодиоды замигали:-) теперь бы ещё дальше пойти… АЦП, LCD, энкодер блин.
#include <stm32f10x.h>
#include <stm32f10x_conf.h>
#include <stm32f10x_rcc.h>
#include <stm32f10x_gpio.h>
void Delay(volatile uint32_t nCount) {
for (; nCount != 0; nCount--);
}
int main(void) {
/* SystemInit() вызывается из startup_stm32f10x_md_vl.c */
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( GPIOC , &GPIO_InitStructure);
GPIO_InitTypeDef GPIO_Init_In_Structure; //Настраиваем PortB0 на вход
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE );
GPIO_Init_In_Structure.GPIO_Pin = GPIO_Pin_0;
GPIO_Init_In_Structure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init_In_Structure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init( GPIOB,&GPIO_Init_In_Structure);
int rab =0x8000;
int i;
while (1) {
i = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0);
if (i==0) { //если кнока нажата, то огонёк движется.
rab=rab>>1; //сдвиг переменной rab
if (rab ==0) rab= 0x8; //если pin0 = 0, то зажечь светодиод на pin3
}
GPIOC->ODR = rab;
Delay(0x4FFff);
}
}
- +1
- 03 октября 2011, 00:19
- sasha85ru
- Оставить комментарий
- 1
← предыдущая следующая →