Перейти к содержанию
bbh_blocked_dnftl

Dx Portal stm32 непонятные моменты в коде


Рекомендуемые сообщения

Всем привет, не мог бы кто нибудь подсказать как работают пару строк в коде?

 

 

 

 

 

Сам код

 

 

 

#include "stm32_p407.h" //Файл конфигурации отладочой платы STM32-P407

#include "lcd.h"

// ПОДПРОГРАММА КОНФИГУРИРОВАНИЯ РАЗРЯДА ПОРТА PB1

void PF8_Init(void);

void tekznach(int);

 

 

void PF8_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

//Структура конфигурации портов общего назначения

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

//Разрешение тактирования порта

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

//Маска на выходной разряд

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

//Режим: вывод

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;

//Задание быстродействия (2MHz, 25MHz, 50MHz, 100MHz)

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

//Установка типа выходного каскада: двухтактный

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

//Подтягивающий резистор: нет

GPIO_Init(GPIOB, &GPIO_InitStructure);

//Функция конфигурирования

}

uint16_t Channel_table[8]={0xB678, 0xAAAA, 0xCCCC, 0xE38E, 0x5555, 0x3333, 0x2222, 0x1111};

int i=1, n=0; //счетчик

uint16_t joy, indic; //Код от джойстика, код для вывода на индикаторы

 

//---------------------------------------------------------------------------

// ГЛАВНАЯ ФУНКЦИЯ

int main()

{

//Инициализация органов управления

STM_PBInit(BUTTON_TAMPER, BUTTON_MODE_GPIO); //Кнопка TAMPER

STM_PBInit(BUTTON_WAKEUP, BUTTON_MODE_GPIO); //Кнопка WAKEUP

STM_PBInit(BUTTON_RIGHT, BUTTON_MODE_GPIO); //Позиции джойстика

STM_PBInit(BUTTON_LEFT, BUTTON_MODE_GPIO);

STM_PBInit(BUTTON_UP, BUTTON_MODE_GPIO);

STM_PBInit(BUTTON_DOWN, BUTTON_MODE_GPIO);

STM_PBInit(BUTTON_SEL, BUTTON_MODE_GPIO);

 

//Инициализация дисплея

LCD_Init(); LCD_Clear(0);

LCD_FontSize(13);

// Конфигурирование разряда PF8 на вывод

PF8_Init();

 

//Цикл в основной программе

while (1)

{

//Проверка воздействия на кнопку WAKEUP, при нажатии - выход из цикла

//if (STM_PBGetState(BUTTON_WAKEUP)) break;

 

if (STM_PBGetState(BUTTON_LEFT))

{

n=1;

tekznach(n);

}

 

if (STM_PBGetState(BUTTON_UP))

{

n=2;

tekznach(n);

}

if (STM_PBGetState(BUTTON_RIGHT))

{

n=3;

tekznach(n);

}

 

if (STM_PBGetState(BUTTON_DOWN))

{

n=4;

tekznach(n);

}

 

if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_LEFT)))

{

n=5;

tekznach(n);

}

 

if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_UP)))

{

n=6;

tekznach(n);

}

 

if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_RIGHT)))

{

n=7;

tekznach(n);

}

 

if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_DOWN)))

{

n=8;

tekznach(n);

}

}

 

//Сброс процессора - завершение выполнения данной программы, запуск начального загрузчика

NVIC_SystemReset();

}

 

//---------------------------------------------------------------------------

void tekznach(n)

{

LCD_TextPos(1,3); LCD_print(" Канал %d ", n);

for (i=0; i<16; i++)

{

indic=(Channel_table[n]<

if (indic==0)

{

STM_LEDOn(LED4);

Delay_ms(30);

}

else

{

STM_LEDOff(LED4);

Delay_ms(30);

}

}

STM_LEDOff(LED4);

}

////-------------------------------------------------------------------------

 

 

 

 

 

 

 

uint16_t Channel_table[8]={0xB678, 0xAAAA, 0xCCCC, 0xE38E, 0x5555, 0x3333, 0x2222, 0x1111};

 

 

 

 

 

 

if ((STM_PBGetState(BUTTON_TAMPER)==0) && (STM_PBGetState(BUTTON_LEFT)))

 

 

 

 

 

 

LCD_TextPos(1,3); LCD_print(" Канал %d ", n);

for (i=0; i<16; i++)

{

indic=(Channel_table[n]<

if (indic==0)

 

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...