Заметки электроника
Простое - надёжнее!
Меню
  • Главная
  • Погода
  • Заметки
  • Календарь
  • Фотогалерея
  • Песни
  • Чтиво
  • Программы
  • Скачать
  • Связь и ссылки
  • Чехия
  • Lavka

Живёшь в Чехии?

STM32 и SPI

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Программирование микроконтроллеров
Создано: 15 июня 2016
Обновлено: 17 июня 2016
Просмотров: 3728
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Здесь публикуем ссылочки на работу с SPI:

Читаем, для начала, это: ТЫНЦ

Библиотека номер 1: http://stm32f4-discovery.net/2015/07/hal-library-08-spi-for-stm32fxxx/

  • 2 режима работы (16 бит и 8 бит),
  • разные конфигурации для разных корпусов
  • поддержка STM32F4xx и STM32F7xx
  • основано на новых драйверах (HAL)

Здесь примеры кода на STD_Lib и на HAL: http://forum.cxem.net/index.php?showtopic=153734

Здесь также обсуждение и архивы с кодом: http://forum.easyelectronics.ru/viewtopic.php?p=420757

 Хотите найти экзамплы для работы SPI памяти, наберите в строке поиска Гугл следующее:

#define WREN 0x06 #define WRDI 0x04 #define RDSR 0x05 #define WRSR 0x01

 Не забываем заглянуть в файл: stm32f7xx_hal_conf.h (смотрите подключённые к main.c) 

Раскомментируйте 

#define HAL_SPI_MODULE_ENABLED

crop SPI2

Здесь изучаем псевдокод для обмена с SPI флеш:

http://www.cypress.com/file/46161/download

И да поможет нам осциллограф :)

Напомнить про работу операционных усилителей поможет эта статья

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Электроника / cхемотехника
Создано: 15 июня 2016
Обновлено: 16 июня 2016
Просмотров: 2831
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Хорошие статьи по теме

http://edu.dvgups.ru/METDOC/GDTRAN/NTS/EPS/EPT/METOD/UP/frame/6.htm

Лекции http://web-local.rudn.ru/web-local/prep/rj/files.php?f=pf_f83f35ed50d73660b0d6f6ec358e5f10

 http://fora.adygnet.ru/files/248/Oper_Ampl.pdf

Для понимания СУТИ работы поможет вот это:

http://matlab.exponenta.ru/simpower/book2/6.php

Попробуйте поиграться с моделями

 

10.06.2016 Московская область. Грозовое предупреждение!

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Погода
Категория: Альтернативная погода от wow-only.ru
Создано: 10 июня 2016
Обновлено: 10 июня 2016
Просмотров: 2344
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Атмосферное давление достигает насыщения, что в купе с повышающейся температурой и испарениями, на ниспадающем фронте давления, создаёт условия для образования грозовых фронтов.

ГРОЗОВОЕ ПРЕДУПРЕЖДЕНИЕ!

10 06 2016HДавление достигает насыщения

Гуманные методы борьбы с муравьями и тлёй

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Жизнь
Создано: 24 мая 2016
Обновлено: 24 мая 2016
Просмотров: 2564
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Особенно понравилось про двусторонний скотч, вскоре попробую.
http://www.7dach.ru/Tangeya/gumannye-metody-borby-s-muravyami-na-dachnom-uchastke-5658.html

Ещё по теме:
К фитонцидным и отпугивающим тлю растениям относятся все пахучие травы, чеснок, лук, бархатцы, кориандр, мята, фенхель, а также пиретрум и ромашка далматская. Привлекают тлю липа, черёмуха, калина. Сажать их рядом с основными культурами не рекомендуется. 
http://www.pro-rasteniya.ru/pasl-novie-rasteniya/tlya-v-sadu-kak-borotsya-s-tl-y-bez-yadochimikatov-narodnie-sredstva-ot-tli
 

BMP - продолжаем банкет

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Программирование
Создано: 24 мая 2016
Обновлено: 24 мая 2016
Просмотров: 3551
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
Вдогонку к предыдущему посту - действительно рабочий код (по крайней мере протестировано на 24 бит изображениях РАЗНОЙ величины): считываем в 32 битные переменные для ARGB с помощью DMA2D построчно (STM32F746).
Читаем снизу вверх с помощью смещения указателя f_seek' ом, слева направо и особое внимание обратите на это:
padding = 0;
scanlinebytes = Size.width * byte_pixel;
while ( ( scanlinebytes + padding ) % 4 != 0 )
padding++;
psw = scanlinebytes + padding;
------------------------------------------------------------------------------------------------------------
  ImgSize LoadBitmapFromSD(uint8_t *NameOfFile, uint32_t AddressOfImage)
  {
  uint32_t index = 0, byte_pixel = 0;
  uint32_t psw, scanlinebytes, padding;
   
  ImgSize Size;
  // uint32_t address;
  uint32_t input_color_mode = 0;
  uint8_t pbmp[DisplayWIDTH*4];
  uint8_t res; //variable for return values
  FATFS fs; //fat object FATFS
  FIL OurFile; // this is our file here
  UINT br; //just counter
  DWORD PositionOfFile, LineBytesSize;
   
  res = f_mount(&fs,"0:",1);
  if (res == FR_OK){
  //open the file
  res = f_open(&OurFile,(char const*)NameOfFile,FA_READ);
  if (res == FR_OK)f_read(&OurFile, pbmp, 30, &br);
   
  }
  else{
  //íå óäàëîñü ñìîíòèðîâàòü äèñê
  Size.height = Size.width =0;
   
  return Size;
  }
   
   
  /* Get bitmap data address offset */
  index = *(__IO uint16_t *) (pbmp + 10);
  index |= (*(__IO uint16_t *) (pbmp + 12)) << 16;
   
  /* Read bitmap width */
  Size.width = *(uint16_t *) (pbmp + 18);
  Size.width |= (*(uint16_t *) (pbmp + 20)) << 16;
   
  /* Read bitmap height */
  Size.height = *(uint16_t *) (pbmp + 22);
  Size.height |= (*(uint16_t *) (pbmp + 24)) << 16;
   
  /* Read bit/pixel */
  byte_pixel = (*(uint16_t *) (pbmp + 28))/8;
  /* Set the address */
   
  /* Get the layer pixel format */
  if (byte_pixel == 4)
  {
  input_color_mode = CM_ARGB8888;
  }
  else if (byte_pixel == 2)
  {
  input_color_mode = CM_RGB565;
  }
  else
  {
  input_color_mode = CM_RGB888;
  }
  /* Bypass the bitmap header */
  padding = 0;
  scanlinebytes = Size.width * byte_pixel;
  while ( ( scanlinebytes + padding ) % 4 != 0 )
  padding++;
  psw = scanlinebytes + padding;
   
  PositionOfFile = index + psw * (Size.height - 1);
  LineBytesSize = byte_pixel * Size.width;
  res = f_lseek(&OurFile, PositionOfFile); //pointer to the last line of bitmap
  res = f_read(&OurFile, &pbmp[0], LineBytesSize, &br);
   
  /* Convert picture to ARGB8888 pixel format */
  for(index=0; index < Size.height; index++)
  {
  /* Pixel format conversion */
  LL_ConvertLineToARGB8888(pbmp, (void *)AddressOfImage, (uint32_t) Size.width, (uint32_t) input_color_mode);
   
  /* Increment the source and destination buffers */
  AddressOfImage += (Size.width * 4);
  PositionOfFile -= psw;
  f_lseek(&OurFile, PositionOfFile); //pointer to the last line of bitmap
  f_read(&OurFile, pbmp, LineBytesSize + (Size.width) % 4, &br);
  }
  f_close(&OurFile);//close the file
  f_mount(NULL, "0:", 0);//unmount the drive
   
  return Size;
  }


// Сама функция LL_ConvertLineToARGB8888 ниже:

void LL_ConvertLineToARGB8888(void *pSrc, void *pDst, uint32_t xSize, uint32_t ColorMode)
{    
  /* Configure the DMA2D Mode, Color Mode and output offset */
  hdma2d.Init.Mode         = DMA2D_M2M_PFC;
  hdma2d.Init.ColorMode    = DMA2D_ARGB8888;
  hdma2d.Init.OutputOffset = 0;     
  
  /* Foreground Configuration */
  hdma2d.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
  hdma2d.LayerCfg[1].InputAlpha = 0xFF;
  hdma2d.LayerCfg[1].InputColorMode = ColorMode;
  hdma2d.LayerCfg[1].InputOffset = 0;
  
  hdma2d.Instance = DMA2D; 
  
  /* DMA2D Initialization */
  if(HAL_DMA2D_Init(&hdma2d) == HAL_OK) 
  {
    if(HAL_DMA2D_ConfigLayer(&hdma2d, 1) == HAL_OK) 
    {
      if (HAL_DMA2D_Start(&hdma2d, (uint32_t)pSrc, (uint32_t)pDst, xSize, 1) == HAL_OK)
      {
        /* Polling For DMA transfer */  
        HAL_DMA2D_PollForTransfer(&hdma2d, 10);
      }
    }
  } 
}
  1. BMP формат: хитро и не так тривиально, как думалось
  2. FAT_FS вход в директорию
  3. 17.05.16 Московская область. Атмосферное давление растёт. Ожидаем тёплую погоду
  4. Поворот точки и полигона относительно другой точки Си. Point and polygon rotation around the origin C code

Страница 153 из 197

  • 148
  • 149
  • ...
  • 151
  • 152
  • 153
  • 154
  • ...
  • 156
  • 157

Back to Top

© 2026 Заметки электроника

Top.Mail.Ru