реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> У кого-нибудь есть готовый пример проекта с дисплеем ILI9320 и FSMC на 100 ногий контроллер?
Salamander
сообщение Apr 6 2013, 10:58
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



ПОпытался переделать таковой под V серию - что-то не работает...

Сообщение отредактировал Salamander - Apr 6 2013, 19:14
Go to the top of the page
 
+Quote Post
alexdos
сообщение Apr 6 2013, 11:27
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856



Цитата(Salamander @ Apr 6 2013, 13:58) *
ПОпытался переделать таковой под Z серию - что-то не работает...


может вот это поможет:

http://code.google.com/p/rt-thread/source/...ili9320.c?r=438
https://github.com/AndreyFursov/AFGUI

Я неделю уже воюю с ILI9325, но я через "ногодрыгательство" по 16 битной шине, на STM32F100RB.
Щас возник вопрос чем "приготовить" картинки в удобном виде для вписывания в флеш контроллера.
Ну и с отрисовкой шрифтов тоже есть проблемы. Так что если есть что почитать на данную тему буду рад.
Go to the top of the page
 
+Quote Post
DASM
сообщение Apr 6 2013, 11:47
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Чем от этой платы http://www.ebay.com/itm/STM32F103RBT6-deve...220839247814%26
не подходит проект на uc-gui ?
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 6 2013, 12:24
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Цитата(DASM @ Apr 6 2013, 15:47) *
Чем от этой платы http://www.ebay.com/itm/STM32F103RBT6-deve...220839247814%26
не подходит проект на uc-gui ?


Тем что нужен FSMC.

Цитата(alexdos @ Apr 6 2013, 15:27) *
может вот это поможет:

http://code.google.com/p/rt-thread/source/...ili9320.c?r=438
https://github.com/AndreyFursov/AFGUI

Я неделю уже воюю с ILI9325, но я через "ногодрыгательство" по 16 битной шине, на STM32F100RB.
Щас возник вопрос чем "приготовить" картинки в удобном виде для вписывания в флеш контроллера.
Ну и с отрисовкой шрифтов тоже есть проблемы. Так что если есть что почитать на данную тему буду рад.


Тут какая-то фигня с разводкой FSMC http://code.google.com/p/rt-thread/source/...ili9320.c?r=438

Код
/*****************************     **    Ó²¼þÁ¬½Ó˵Ã÷          **     ** STM32         ili9320    **     ** PE0~15 <----> DB0~15     **     ** PD15   <----> nRD        **     ** PD14   <----> RS         **     ** PD13   <----> nWR        **     ** PD12   <----> nCS        **     ** PD11   <----> nReset     **     ** PC0    <----> BK_LED     **     ******************************/
Go to the top of the page
 
+Quote Post
alexdos
сообщение Apr 6 2013, 14:08
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 339
Регистрация: 10-07-08
Из: Херсон
Пользователь №: 38 856



Цитата(DASM @ Apr 6 2013, 14:47) *
Чем от этой платы http://www.ebay.com/itm/STM32F103RBT6-deve...220839247814%26
не подходит проект на uc-gui ?


А где его можно скачат для посмотреть? Что то не нашел.
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 6 2013, 14:45
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Нашел библиотеку, пытаюсь прикрутить.
Вопрос собственно по FSMC
CODE
static void LCD_CtrlLinesConfig(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

/* Enable FSMC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE |
RCC_APB2Periph_GPIOG |
RCC_APB2Periph_AFIO, ENABLE);

/* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.08(D13), PD.09(D14),
PD.10(D15), PD.14(D0), PD.15(D1) as alternate
function push pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 |
GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);

/* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),
PE.14(D11), PE.15(D12) as alternate function push pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_Init(GPIOE, &GPIO_InitStructure);

GPIO_WriteBit(GPIOE, GPIO_Pin_6, Bit_SET);

/* Set PF.00(A0 (RS)) as alternate function push pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_11;
GPIO_Init(GPIOD, &GPIO_InitStructure);

/* Set PD.7(NE1 (LCD/CS)) as alternate function push pull - CE3(LCD /CS) */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}

/*******************************************************************************
* Function Name : LCD_FSMCConfig
* Description : Configures the Parallel interface (FSMC) for LCD(Parallel mode)
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_FSMCConfig(void)
{
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef p;

/*-- FSMC Configuration ------------------------------------------------------*/
/*----------------------- SRAM Bank 4 ----------------------------------------*/
/* FSMC_Bank1_NORSRAM4 configuration */
p.FSMC_AddressSetupTime = 0;
p.FSMC_AddressHoldTime = 0;
p.FSMC_DataSetupTime = 2;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_A;

/* Color LCD configuration ------------------------------------
LCD configured as follow:
- Data/Address MUX = Disable
- Memory Type = SRAM
- Data Width = 16bit
- Write Operation = Enable
- Extended Mode = Enable
- Asynchronous Wait = Disable */
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM2;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
// FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

/* BANK 4 (of NOR/SRAM Bank 1~4) is enabled */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM2, ENABLE);
}


У меня, чисто из соображдений удобства разводки вместо A0 используется A16. А вместо NE4 - NE1.
В конфигурации ножек вроде бы все поменял. Где менять A0 на A16 ?

Сообщение отредактировал IgorKossak - Apr 7 2013, 08:30
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 6 2013, 19:11
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Таки сломал весь мозг...
Уже и мнотаж и исправность пинов проверял - все ОК.
А экран не закрашивается...
CODE
/******************** © COPYRIGHT 2008 STMicroelectronics ********************
* File Name : lcd.c
* Author : MCD Application Team
* Version : V1.0.0
* Date : 07/22/2008
* Description : This file includes the LCD driver for AM-240320L8TNQW00H
* (LCD_ILI9320) Liquid Crystal Display Module of STM3210E-EVAL
* board.
********************************************************************************
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Includes ------------------------------------------------------------------*/
//#include "fonts.h"
#include "lcd.h"
#include "stm32f10x.h"
#include "stm32f10x_fsmc.h"
/* Private typedef -----------------------------------------------------------*/
typedef struct
{
vu16 LCD_REG;
vu16 LCD_RAM;
} LCD_TypeDef;

/* LCD is connected to the FSMC_Bank1_NOR/SRAM1 and NE4 is used as ship select signal */
#define LCD_BASE ((u32)0x60000000)
#define LCD ((LCD_TypeDef *) LCD_BASE)

/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Global variables to set the written text color */
static vu16 TextColor = 0x0000, BackColor = 0xFFFF;

/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

/*******************************************************************************
* Function Name : STM3210E_LCD_Init
* Description : Initializes the LCD.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void STM3210E_LCD_Init(void)
{
/* Configure the LCD Control pins --------------------------------------------*/
LCD_CtrlLinesConfig();

/* Configure the FSMC Parallel interface -------------------------------------*/
LCD_FSMCConfig();

Delay(50); /* delay 50 ms */
/* Start Initial Sequence ----------------------------------------------------*/

LCD_WriteReg(0x00E3,0x3008); /* Set the internal vcore voltage */
LCD_WriteReg(0x00E7, 0x0012); // Set internal timing
LCD_WriteReg(0x00EF, 0x1231); // Set internal timing
LCD_WriteReg(R0, 0x0001); /* Start internal OSC. */
LCD_WriteReg(R1, 0x0100); /* set SS and SM bit */
LCD_WriteReg(R2, 0x0200); /* set 1 line inversion */
LCD_WriteReg(R3, 0x1030); /* set GRAM write direction and BGR=1. */
LCD_WriteReg(R4, 0x0000); /* Resize register */
LCD_WriteReg(R8, 0x0207); /* set the back porch and front porch */
LCD_WriteReg(R9, 0x0000); /* set non-display area refresh cycle ISC[3:0] */
LCD_WriteReg(R10, 0x0000); /* FMARK function */
LCD_WriteReg(R12, 0x0000); /* RGB interface setting */
LCD_WriteReg(R13, 0x0000); /* Frame marker Position */
LCD_WriteReg(R15, 0x0000); /* RGB interface polarity */

//LCD_WriteReg(0x00e5,0x78F0);
/* Power On sequence ---------------------------------------------------------*/
LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
LCD_WriteReg(R17, 0x0007); /* DC1[2:0], DC0[2:0], VC[2:0] */
LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude */
LCD_WriteReg(0x0007, 0x0001);
Delay(200); /* Dis-charge capacitor power voltage (200ms) */
LCD_WriteReg(R16, 0x1690); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
LCD_WriteReg(R17, 0x0227); /* DC1[2:0], DC0[2:0], VC[2:0] */
Delay(50); /* Delay 50 ms */
LCD_WriteReg(R18, 0x000D); /* VREG1OUT voltage */
Delay(50); /* Delay 50 ms */
LCD_WriteReg(R19, 0x1200); /* VDV[4:0] for VCOM amplitude */
LCD_WriteReg(R41, 0x000A); /* VCM[4:0] for VCOMH */
LCD_WriteReg(0x002B, 0x000D);
Delay(50); /* Delay 50 ms */
LCD_WriteReg(R32, 0x0000); /* GRAM horizontal Address */
LCD_WriteReg(R33, 0x0000); /* GRAM Vertical Address */

/* Adjust the Gamma Curve ----------------------------------------------------*/
LCD_WriteReg(R48, 0x0000);
LCD_WriteReg(R49, 0x0404);
LCD_WriteReg(R50, 0x0003);
LCD_WriteReg(R53, 0x0405);
LCD_WriteReg(R54, 0x0808);
LCD_WriteReg(R55, 0x0407);
LCD_WriteReg(R56, 0x0303);
LCD_WriteReg(R57, 0x0707);
LCD_WriteReg(R60, 0x0504);
LCD_WriteReg(R61, 0x0808);

/* Set GRAM area -------------------------------------------------------------*/
LCD_WriteReg(R80, 0x0000); /* Horizontal GRAM Start Address */
LCD_WriteReg(R81, 0x00EF); /* Horizontal GRAM End Address */
LCD_WriteReg(R82, 0x0000); /* Vertical GRAM Start Address */
LCD_WriteReg(R83, 0x013F); /* Vertical GRAM End Address */

LCD_WriteReg(R96, 0xA700); /* Gate Scan Line */
LCD_WriteReg(R97, 0x0001); /* NDL,VLE, REV */
LCD_WriteReg(R106, 0x0000); /* set scrolling line */

/* Partial Display Control ---------------------------------------------------*/
LCD_WriteReg(R128, 0x0000);
LCD_WriteReg(R129, 0x0000);
LCD_WriteReg(R130, 0x0000);
LCD_WriteReg(R131, 0x0000);
LCD_WriteReg(R132, 0x0000);
LCD_WriteReg(R133, 0x0000);

/* Panel Control -------------------------------------------------------------*/
LCD_WriteReg(R144, 0x0010);
LCD_WriteReg(R146, 0x0000);
LCD_WriteReg(0x0007, 0x0133);
/* LCD_WriteReg(R149, 0x0110);
LCD_WriteReg(R151, 0x0000);
LCD_WriteReg(R152, 0x0000);*/

/* Set GRAM write direction and BGR = 1 */
/* I/D=01 (Horizontal : increment, Vertical : decrement) */
/* AM=1 (address is updated in vertical writing direction) */
LCD_WriteReg(R3, 0x1018);

LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
}


/*******************************************************************************
* Function Name : LCD_WriteReg
* Description : Writes to the selected LCD register.
* Input : - LCD_Reg: address of the selected register.
* - LCD_RegValue: value to write to the selected register.
* Output : None
* Return : None
*******************************************************************************/
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
{
/* Write 16-bit Index, then Write Reg */
LCD->LCD_REG = LCD_Reg;
/* Write 16-bit Reg */
LCD->LCD_RAM = LCD_RegValue;
}

/*******************************************************************************
* Function Name : LCD_ReadReg
* Description : Reads the selected LCD Register.
* Input : None
* Output : None
* Return : LCD Register Value.
*******************************************************************************/
u16 LCD_ReadReg(u8 LCD_Reg)
{
/* Write 16-bit Index (then Read Reg) */
LCD->LCD_REG = LCD_Reg;
/* Read 16-bit Reg */
return (LCD->LCD_RAM);
}

/*******************************************************************************
* Function Name : LCD_WriteRAM_Prepare
* Description : Prepare to write to the LCD RAM.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_WriteRAM_Prepare(void)
{
LCD->LCD_REG = R34;
}

/*******************************************************************************
* Function Name : LCD_WriteRAM
* Description : Writes to the LCD RAM.
* Input : - RGB_Code: the pixel color in RGB mode (5-6-5).
* Output : None
* Return : None
*******************************************************************************/
void LCD_WriteRAM(u16 RGB_Code)
{
/* Write 16-bit GRAM Reg */
LCD->LCD_RAM = RGB_Code;
}

/*******************************************************************************
* Function Name : LCD_ReadRAM
* Description : Reads the LCD RAM.
* Input : None
* Output : None
* Return : LCD RAM Value.
*******************************************************************************/
u16 LCD_ReadRAM(void)
{
/* Write 16-bit Index (then Read Reg) */
LCD->LCD_REG = R34; /* Select GRAM Reg */
/* Read 16-bit Reg */
return LCD->LCD_RAM;
}

/*******************************************************************************
* Function Name : LCD_PowerOn
* Description : Power on the LCD.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_PowerOn(void)
{
/* Power On sequence ---------------------------------------------------------*/
LCD_WriteReg(R16, 0x0000); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
LCD_WriteReg(R17, 0x0000); /* DC1[2:0], DC0[2:0], VC[2:0] */
LCD_WriteReg(R18, 0x0000); /* VREG1OUT voltage */
LCD_WriteReg(R19, 0x0000); /* VDV[4:0] for VCOM amplitude*/
Delay(200); /* Dis-charge capacitor power voltage (200ms) */
LCD_WriteReg(R16, 0x17B0); /* SAP, BT[3:0], AP, DSTB, SLP, STB */
LCD_WriteReg(R17, 0x0137); /* DC1[2:0], DC0[2:0], VC[2:0] */
Delay(50); /* Delay 50 ms */
LCD_WriteReg(R18, 0x0139); /* VREG1OUT voltage */
Delay(50); /* Delay 50 ms */
LCD_WriteReg(R19, 0x1d00); /* VDV[4:0] for VCOM amplitude */
LCD_WriteReg(R41, 0x0013); /* VCM[4:0] for VCOMH */
Delay(50); /* Delay 50 ms */
LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
}

/*******************************************************************************
* Function Name : LCD_DisplayOn
* Description : Enables the Display.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_DisplayOn(void)
{
/* Display On */
LCD_WriteReg(R7, 0x0173); /* 262K color and display ON */
}

/*******************************************************************************
* Function Name : LCD_DisplayOff
* Description : Disables the Display.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_DisplayOff(void)
{
/* Display Off */
LCD_WriteReg(R7, 0x0);
}



/*******************************************************************************
* Function Name : RESET_line_config
* Description : Configures LCD Reset
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void RESET_line_config(void){
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);

}



/*******************************************************************************
* Function Name : LCD_CtrlLinesConfig
* Description : Configures LCD Control lines (FSMC Pins) in alternate function
Push-Pull mode.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_CtrlLinesConfig(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

/* Enable FSMC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
//RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE /*|
RCC_APB2Periph_AFIO*/, ENABLE);

/* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.07(NE1/CS), PD.08(D13), PD.09(D14),
PD.10(D15), PD.11(A16/RS) PD.14(D0), PD.15(D1) as alternate
function push pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 |
GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);

/* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),
PE.14(D11), PE.15(D12) as alternate function push pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_Init(GPIOE, &GPIO_InitStructure);

}

/*******************************************************************************
* Function Name : LCD_FSMCConfig
* Description : Configures the Parallel interface (FSMC) for LCD(Parallel mode)
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_FSMCConfig(void)
{
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef p;

/*-- FSMC Configuration ------------------------------------------------------*/
/* FSMC_Bank1_NORSRAM4 timing configuration */
p.FSMC_AddressSetupTime = 1;
p.FSMC_AddressHoldTime = 0;
p.FSMC_DataSetupTime = 2;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_B;

/* FSMC_Bank1_NORSRAM4 configured as follows:
- Data/Address MUX = Disable
- Memory Type = SRAM
- Data Width = 16bit
- Write Operation = Enable
- Extended Mode = Disable
- Asynchronous Wait = Disable */
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Enable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = 0x00; //FSMC_MemoryType_SRAM;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
// FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

/* Enable FSMC_Bank1_NORSRAM1 */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);

}

/******************* © COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/


Сообщение отредактировал IgorKossak - Apr 7 2013, 08:32
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 6 2013, 19:11
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Извините, но спойлер почему-то глючит.

Сообщение отредактировал Salamander - Apr 6 2013, 19:14
Go to the top of the page
 
+Quote Post
Axel
сообщение Apr 7 2013, 08:54
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



У меня есть работающий проект для ILI9327, правда для LPC1778 и без использования SMSIS. Если это может помочь - пишите в личку.
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 7 2013, 09:21
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



В моем китайском дисплее нет SPI. Хотя по даташиту - SPI там есть. Китайцы сэкономили. Не может ли хотя бы теоретически так быть, что экономное производство данного дисплея китайцами делало невозможным исползование FSMC?
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 7 2013, 12:38
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(Salamander @ Apr 7 2013, 13:21) *
В моем китайском дисплее нет SPI. Хотя по даташиту - SPI там есть. Китайцы сэкономили. Не может ли хотя бы теоретически так быть, что экономное производство данного дисплея китайцами делало невозможным исползование FSMC?



В моём проекте есть SPI (позволит исключить возможные ошибки в инициализации).
Вместо FSMC использовать "ногодрыг" попробуйте - а потом уже будете оптимизирровать.
Ссылочку на панель применённую вами (не на чип) приложите.
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 7 2013, 13:49
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Цитата
Ссылочку на панель применённую вами (не на чип) приложите.


Так я не с панелью работаю, а с собственной платой. Ссылка на нее http://electronix.ru/forum/index.php?showtopic=109835


Цитата
Вместо FSMC использовать "ногодрыг" попробуйте

ОК. Тогда придется раскидывать 16 бит слова данных...
Я с утра уже голову ломаю - что-то не получается.
DA0-DA15 разкиданы по портам D и E.

С портом E у меня получилось писать биты слова 4-12 в биты порта 7-15:
GPIOE=((СЛОВО_ДАННЫХ <<3) & 0xFF80);


А как с портом D быть? Там должно быть так:
А именно
GPIOD.0 = бит_данных.2
GPIOD.1 - бит_данных.3
GPIOD.8 - бит_данных.13
GPIOD.9 - бит_данных.14
GPIOD.10 - бит_данных.15
GPIOD.14 - бит_данных.0
GPIOD.15 - бит_данных.1

Подскажите пожалуйста.

Тихо сам с собою....
Получилось писать вот так:
Цитата
GPIOE=((SRC <<3) & 0xFF80);


GPIOD &= ~(0xC703); //очищаем все биты которые будем копировать
GPIOD |= (SRC & 0x0004) >> (2-0); //выделили 2й бит и сдвинули его на нулевую позицию
GPIOD |= (SRC & 0x0008) >> (3-1);//выделили 3й бит и сдвинули на 1ю позицию
GPIOD |= (SRC & 0x2000) >> (13-8);//выделили 13й бит и сдвинули на 8ю позицию
GPIOD |= (SRC & 0x4000) >> (14-9);//выделили 14й бит и сдвинули на 9ю позицию
GPIOD |= (SRC & 0x8000) >> (15-10);//выделили 15й бит и сдвинули на 10ю позицию

GPIOD |= (SRC & 0x0001) << (14);//выделили 0й бит и сдвинули на 14ю позицию
GPIOD |= (SRC & 0x0002) << (14);//выделили 1й бит и сдвинули на 15ю позицию


Теперь попробую читать...

Сообщение отредактировал Salamander - Apr 7 2013, 13:11
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 7 2013, 23:25
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Хочу обратить Ваше внимание на диапазон допустимых напряжений питания контроллера дисплея. То, что в даташите написано до 3.3 вольта - это верхняя граница вместе с отклонениями. т.е., 2.9...3.0 для этого дисплея было бы в самый раз. Серьёзно обращать внимание на это стоит потому, что иногда дисплеи перестают работать... Например, в контроллере дисплея LPH88 при 3.3 вольт питания в девяти из десяти случаев не включался преобразователь приания LCD. Попробуйте понизить всё питание платы, или, в крайнем случае, - поставить диод последовательно в питание дисплея.

UPD:
Хотя, в evaluation board от ST панель с данным контроллером подключена к +3.3 напрямую.
А проверьте, хоть chip id читается? Это должно происходить независимо от состояния преобразователя или инициализированности развёрток панели.

Upd2:
Что стряслось? Биты не в том порядке развели?

Сообщение отредактировал Genadi Zawidowski - Apr 7 2013, 23:33
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 8 2013, 02:54
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



КТо рано встает, тому бог подает.

Встал в 5 утра и копался....
ПРозвонил каждый бит, проверил пайку, убедился что каждый бит попадает на шлейф дисплея - не работает.
И вот только что, похоже причину нашел. Оказывается, эти китайские дисплеи очень тонкие, чувственные натуры - требуют чтения данных из себя.
Я взял китайскую плату, с заведомо рабочим железом и кодом. Функция LCD_ReadReg встречается один лишь раз - в чтении идентификатора (тип дисплея). А дальше, в зависимости от типа дисплея соответствующий код. Я закомментировал LCD_ReadReg и указал тип дисплея - не работает. Я даже тип дисплея предварительно прочитал.

В FSMC библиотеке, что я использовал, тип дисплея не читался.

Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Apr 8 2013, 06:12
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Я не использую чтение в своём проекте... Но у меня SPI.
Вы прислали ссылку на свою плату... Можете точный тип дисплея (жедательно ссылку/.pdf)?

Сообщение отредактировал Genadi Zawidowski - Apr 8 2013, 06:17
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 9 2013, 17:53
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Даташит выкладываю.

Господа, раскидыванием битов я добился работы дисплея в ногодрыгательном режиме. То есть исправность контроллера, исправность дисплея и правильность монтажа подтвердились.

Помогите что ли с настройкой смаого FSMC.

Есть в частности два вопроса:
1. У меня 100-ногий контроллер, соответственно, использую адресную линию A16.
Чему в этом случае должен быть равен параметр FSMC_NORSRAMInitStructure.FSMC_DataAddressMux - Enable или Disable? В интернете крайне противоречивая информация об этом.

2. Адрес первого банка - правильно ли я указал
Код
#define LCD_BASE    ((u32)0x60020000)
#define LCD         ((LCD_TypeDef *) LCD_BASE)


Вот инициализация:
CODE

/*******************************************************************************
* Function Name : RESET_line_config
* Description : Configures LCD Reset
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void RESET_line_config(void){
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);

}



/*******************************************************************************
* Function Name : LCD_CtrlLinesConfig
* Description : Configures LCD Control lines (FSMC Pins) in alternate function
Push-Pull mode.
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_CtrlLinesConfig(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

/* Enable FSMC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);

/* Set PD.00(D2), PD.01(D3), PD.04(NOE), PD.05(NWE), PD.07(NE1/CS), PD.08(D13), PD.09(D14),
PD.10(D15), PD.11(A16/RS) PD.14(D0), PD.15(D1) as alternate
function push pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_7 |
GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);

/* Set PE.07(D4), PE.08(D5), PE.09(D6), PE.10(D7), PE.11(D8), PE.12(D9), PE.13(D10),
PE.14(D11), PE.15(D12) as alternate function push pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 |
GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);

}

/*******************************************************************************
* Function Name : LCD_FSMCConfig
* Description : Configures the Parallel interface (FSMC) for LCD(Parallel mode)
* Input : None
* Output : None
* Return : None
*******************************************************************************/
void LCD_FSMCConfig(void)
{
FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure;
FSMC_NORSRAMTimingInitTypeDef p;

/*-- FSMC Configuration ------------------------------------------------------*/
/* FSMC_Bank1_NORSRAM4 timing configuration */
p.FSMC_AddressSetupTime = 1;
p.FSMC_AddressHoldTime = 0;
p.FSMC_DataSetupTime = 2;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_B;

/* FSMC_Bank1_NORSRAM4 configured as follows:
- Data/Address MUX = Disable
- Memory Type = SRAM
- Data Width = 16bit
- Write Operation = Enable
- Extended Mode = Disable
- Asynchronous Wait = Disable */
FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = 0x00; //FSMC_MemoryType_SRAM;
FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

/* Enable FSMC_Bank1_NORSRAM1 */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);

}

/******************* © COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

Ну и запуск - два варианта:
CODE

void LCD_Init(void)
{
static uint16_t DeviceCode;
unsigned char i;
/* Configure the LCD Control pins --------------------------------------------*/

LCD_CtrlLinesConfig();
/* Configure the FSMC Parallel interface -------------------------------------*/
LCD_FSMCConfig();


LCD_WriteReg(0x0000,0x0001);
Delay(5); // LCD_Delay 50 ms

DeviceCode = LCD_ReadReg(0x0000);

//DeviceCode=0x9325;


if(DeviceCode==0x9325||DeviceCode==0x9328)//ILI9325
{
LCD_WriteReg(0x00e5,0x78F0);
// LCD_WriteReg(0x0000,0x0001);
LCD_WriteReg(0x0001,0x0100);
LCD_WriteReg(0x0002,0x0700);
LCD_WriteReg(0x0003,0x1030);
LCD_WriteReg(0x0004,0x0000);
LCD_WriteReg(0x0008,0x0202);
LCD_WriteReg(0x0009,0x0000);
LCD_WriteReg(0x000a,0x0000);
LCD_WriteReg(0x000c,0x0001);
LCD_WriteReg(0x000d,0x0000);
LCD_WriteReg(0x000f,0x0000);
//Power On sequence //
LCD_WriteReg(0x0010,0x0000);
LCD_WriteReg(0x0011,0x0007);
LCD_WriteReg(0x0012,0x0000);
LCD_WriteReg(0x0013,0x0000);
LCD_WriteReg(0x0007,0x0001);
Delay(5);
LCD_WriteReg(0x0010,0x1690);
LCD_WriteReg(0x0011,0x0227);
Delay(5);
LCD_WriteReg(0x0012,0x009d);
Delay(5);
LCD_WriteReg(0x0013,0x1900);
LCD_WriteReg(0x0029,0x0025);
LCD_WriteReg(0x002b,0x000d);
Delay(5);
LCD_WriteReg(0x0020,0x0000);
LCD_WriteReg(0x0021,0x0000);
Delay(5);
//Ù¤ÂíУÕý
LCD_WriteReg(0x0030,0x0007);
LCD_WriteReg(0x0031,0x0303);
LCD_WriteReg(0x0032,0x0003);
LCD_WriteReg(0x0035,0x0206);
LCD_WriteReg(0x0036,0x0008);
LCD_WriteReg(0x0037,0x0406);
LCD_WriteReg(0x0038,0x0304);
LCD_WriteReg(0x0039,0x0007);
LCD_WriteReg(0x003c,0x0602);
LCD_WriteReg(0x003d,0x0008);
Delay(5);
LCD_WriteReg(0x0050,0x0000);
LCD_WriteReg(0x0051,0x00ef);
LCD_WriteReg(0x0052,0x0000);
LCD_WriteReg(0x0053,0x013f);

LCD_WriteReg(0x0060,0xa700);
LCD_WriteReg(0x0061,0x0001);
LCD_WriteReg(0x006a,0x0000);
LCD_WriteReg(0x0080,0x0000);
LCD_WriteReg(0x0081,0x0000);
LCD_WriteReg(0x0082,0x0000);
LCD_WriteReg(0x0083,0x0000);
LCD_WriteReg(0x0084,0x0000);
LCD_WriteReg(0x0085,0x0000);

LCD_WriteReg(0x0090,0x0010);
LCD_WriteReg(0x0092,0x0600);

LCD_WriteReg(0x0007,0x0133);
}
else if(DeviceCode==0x9320||DeviceCode==0x9300)
{
LCD_WriteReg(0x00,0x0000);
LCD_WriteReg(0x01,0x0100); //Driver Output Contral.
LCD_WriteReg(0x02,0x0700); //LCD Driver Waveform Contral.
LCD_WriteReg(0x03,0x1030);//Entry Mode Set.
//LCD_WriteReg(0x03,0x1018); //Entry Mode Set.

LCD_WriteReg(0x04,0x0000); //Scalling Contral.
LCD_WriteReg(0x08,0x0202); //Display Contral 2.(0x0207)
LCD_WriteReg(0x09,0x0000); //Display Contral 3.(0x0000)
LCD_WriteReg(0x0a,0x0000); //Frame Cycle Contal.(0x0000)
LCD_WriteReg(0x0c,(1<<0)); //Extern Display Interface Contral 1.(0x0000)
LCD_WriteReg(0x0d,0x0000); //Frame Maker Position.
LCD_WriteReg(0x0f,0x0000); //Extern Display Interface Contral 2.
Delay(10);
LCD_WriteReg(0x07,0x0101); //Display Contral.
Delay(10);
LCD_WriteReg(0x10,(1<<12)|(0<<8)|(1<<7)|(1<<6)|(0<<4)); //Power Control 1.(0x16b0)
LCD_WriteReg(0x11,0x0007); //Power Control 2.(0x0001)
LCD_WriteReg(0x12,(1<<8)|(1<<4)|(0<<0)); //Power Control 3.(0x0138)
LCD_WriteReg(0x13,0x0b00); //Power Control 4.
LCD_WriteReg(0x29,0x0000); //Power Control 7.

LCD_WriteReg(0x2b,(1<<14)|(1<<4));
LCD_WriteReg(0x50,0); //Set X Star
//ˮƽGRAMÖÕֹλÖÃSet X End.
LCD_WriteReg(0x51,239); //Set Y Star
LCD_WriteReg(0x52,0); //Set Y End.t.
LCD_WriteReg(0x53,319); //

LCD_WriteReg(0x60,0x2700); //Driver Output Control.
LCD_WriteReg(0x61,0x0001); //Driver Output Control.
LCD_WriteReg(0x6a,0x0000); //Vertical Srcoll Control.

LCD_WriteReg(0x80,0x0000); //Display Position? Partial Display 1.
LCD_WriteReg(0x81,0x0000); //RAM Address Start? Partial Display 1.
LCD_WriteReg(0x82,0x0000); //RAM Address End-Partial Display 1.
LCD_WriteReg(0x83,0x0000); //Displsy Position? Partial Display 2.
LCD_WriteReg(0x84,0x0000); //RAM Address Start? Partial Display 2.
LCD_WriteReg(0x85,0x0000); //RAM Address End? Partial Display 2.

LCD_WriteReg(0x90,(0<<7)|(16<<0)); //Frame Cycle Contral.(0x0013)
LCD_WriteReg(0x92,0x0000); //Panel Interface Contral 2.(0x0000)
LCD_WriteReg(0x93,0x0001); //Panel Interface Contral 3.
LCD_WriteReg(0x95,0x0110); //Frame Cycle Contral.(0x0110)
LCD_WriteReg(0x97,(0<<8)); //
LCD_WriteReg(0x98,0x0000); //Frame Cycle Contral.
LCD_WriteReg(0x07,0x0173); //(0x0173)
Delay(10);
}

LCD_Clear(0x0FF0);
}

В main.c
CODE

GPIOD->BSRR =GPIO_BSRR_BR12; //передергиваем RESET
delay_ms(50);
GPIOD->BSRR =GPIO_BSRR_BS12;
delay_ms(50);

LCD_PowerOn();
LCD_DisplayOn();
STM3210E_LCD_Init();


/* Clear the LCD */
LCD_Clear(0x0000);
Go to the top of the page
 
+Quote Post
hd44780
сообщение Apr 11 2013, 11:04
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 26-08-05
Из: Донецк, ДНР
Пользователь №: 7 980



Если надо, могу поделиться живым примитивчиком для F407 (работает на Discovery).
В теме ни разу не упомянуто, о каком проце идёт речь? Из кусков кода могу продположить, что о каком-то F1...


--------------------
Чтобы возить такого пассажира, необходим лимузин другого класса.
(с) Мария Эдуарда
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 11 2013, 14:35
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



stm32f103vg
Go to the top of the page
 
+Quote Post
Salamander
сообщение Apr 13 2013, 18:09
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 466
Регистрация: 17-11-12
Пользователь №: 74 443



Спасибо, нашел рабочий вариант.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 20:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01604 секунд с 7
ELECTRONIX ©2004-2016