.


:




:

































 

 

 

 


, , . ̳ , , ' , - (, , - () ).

- , , , , . ̳ -, . ̳ , . , , ᒺ , , , , . , , .

 

 

1.

 

ֳ: () .

: , 12 . .

: .

: , .

: .

:

STM32 VL DISCOVERY - ST STM32F100RB ( 1.1)

1.1 - STM32 VL DISCOVERY

USB-USART FTDI FT232RL , 璺 USB-USART ( 1.2)

1.2 - USB-USART

MS Visual Studio 2008 C# - 璺 USART ;

IAR Embedded Workbench () ++.


 

2. ϳ

 

- . - , , .

- , .
' .

- (), , .

- .

- , . , , , . .

ϳ :

: , ;

;

.

 

:

: STM32F105;

24 : 8;

12 : 16;

2.0 - 3.6 .

, , , 24 , 12 . 2.1 .

 

2.1


 

3.

 

. , , , .

( 3.1).

 

3.1 -

 

, 璺 USART . , , , ' , .

-

 

3.1.

 

:

1) ();

2) .

г , 100% .

STMicroelectronics. STMicroelectronics - , .

' . , .

.

' .

̳ , . USART.

' . ( 3.2).

3.2 -

 

3.2. ³ STM32 VL DISCOVERY

 

STMicroelectronics (ST) STM32 VL DISCOVERY.

STM32 VL DISCOVERY STM32F100, STM32 Value Line. : IAR, Keil, Atollic.

64- LQFP 24 . , , , .

/ ST-Link, .

STM32VLDISCOVERY:

STM32F100RBT6B:

32- Cortex-M3, 24 ;

Flash- 128 ;

RAM 8 ;

;

;

:

2 × SPI, 2 × I2C, 3 × USART;

16- 12- ;

12- ;

2.0 3.6 .

:

USB ;

;

, RESET

璿 / , [1].

3.1

STM32 VL DISCOVERY.

 

 

3.1

  12/31/47/63 GND - Vss  
  - NC - -  
    3V3 - -  
    VBAT S VBAT  
    PC13 I/O Port C13 TAMPER-RTC
    PC14 I/O Port C14 OSC32_IN
    PC15 I/O Port C15 OSC32_OUT
    PD0 I/O OSC_IN  
    PD1 I/O OSC_OUT  
    NRST I/O RESET  
    PC0 I/O Port C0 ADC1_IN10
    PC1 I/O Port C1 ADC1_IN11
    PC2 I/O Port C2 ADC1_IN12
    PC3 I/O Port C3 ADC1_IN13
    PA0 I/O Port A0 WKUP / USART2_CTS/ ADC1_IN0 / TIM2_CH1_ETR
    PA1 I/O Port A1 USART2_RTS ADC1_IN1 / TIM2_CH2
    PA2 I/O Port A2 USART2_TX/ ADC1_IN2 / TIM2_CH3/ TIM15_CH1
    PA3 I/O Port A3 USART2_RX/ ADC1_IN3 / TIM2_CH4 / TIM15_CH2
    PA4 I/O Port A4 SPI1_NSS/ ADC1_IN4 USART2_CK / DAC1_OUT
    PA5 I/O Port A5 SPI1_SCK/ ADC1_IN5 / DAC2_OUT

 

 

3.1 ()

    PA6 I/O Port A6 SPI1_MISO/ ADC1_IN6 / TIM3_CH1
    PA7 I/O Port A7 SPI1_MOSI ADC1_IN7 / TIM3_CH2
    PC4 I/O Port C4 ADC1_IN14
    PC5 I/O Port C5 ADC1_IN15
    PB0 I/O Port B0 ADC1_IN8/ TIM3_CH3
    PB1 I/O Port B1 ADC1_IN9/ TIM3_CH4
    PB2 I/O Port B2 / BOOT1  
    GND      

 

, STM32F100, STM32F105, , ᒺ STM32F100, , 32 Cortex-M3, , , . , STM32 VL DISCOVERY , [2].

 

3.3. IAR Embedded Workbench for ARM

 

IAR Embedded Workbench for ARM ( 3.3) ARM C, C++ . IAR ARM . , C++, , , . , .

:

;

C / C + +;

.

C, C ++:

;

ANSI C;

ARM-.

 

3.3 IAR Embedded Workbench for ARM

 

:

C, C + + ;

;

CODE, DATA, EEPROM / .

ϳ : ARM7 (ARM7TDMI, ARM7TDMI-S, ARM720T), ARM7E (ARM7EJ-S), ARM9 (ARM9TDMI, ARM920T, ARM922T, ARM940T), 9 ARM926EJ-S, ARM946E-S, ARM966E-S, ARM968E-S), ARM10E (ARM1020E, ARM1022E), ARM11, SecurCore (SC000, SC100, SC110, SC200, SC210, SC300), Cortex-M1, Cortex-M3, Cortex-R4, Cortex-M0, Cortex-M4, Xscale.

IAR Embedded Workbench for ARM, Keil Atollic.

 

3.4. CMSIS

 

CMSIS (Cortex Microcontroller Software Interface Standard). CMSIS Cortex-M3 . . ARM Cortex . ARM , , , ++ CMSIS. , Cortex M3 , , CMSIS .

:

Cortex M3:

core_cm3.c;

core_cm3.h.

( ), CMSIS www.st.com, STM32F100RB CMSIS http://www.st.com/internet/mcu/product/164499.jsp. :

stm32f10x.h , . .

system_stm32f10x.c CMSIS. (SystemInit, SystemCoreClockUpdate, SystemCoreClock), . CMSIS M3 ;

system_stm32f10x.h CMSIS [3].

CMSIS , . IAR, CMSIS. STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\CMSIS\CM3\CoreSupport core_cm3.c, IAR , , CMSIS core_cm3.c. STM32F10x_StdPeriph_Lib_V3.4.0\Project\STM32F10x_StdPeriph_Template\system_stm32f10x.c.

, CMSIS src src\CMSIS. , inc stm32f10x.h system_stm32f10x.h STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\ CMSIS\CM3\DeviceSupport\ST\STM32F10x core_cm3.h STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\CMSIS\CM3\CoreSupport. . , , startup, startup_stm32f10x_md_vl.s STM32F10x_StdPeriph_Lib_V3.4.0\Libraries\CMSIS\CM3\DeviceSupport\ ST\STM32F10x\startup\iar .

. , , SystemInit() CMSIS main() [4]. , ( 3.4)

 

3.4 CMSIS

 

3.5. Standard Peripherals Library

 

Standard Peripherals Library.

Standard Peripherals Library ST Microelectronics . , , , .

, 3.4.0 15 2010.

, . , , / , .. .chm. , . , . Standard Peripherals Library :

, ;

, , ;

, , .

:

( , );

 

3.6. -

 

- () , ( ). (- ). , , [5].

, . . , , 256 (0..255), 8 , 28 = 256. 12 , , 4096 (0..4095).

, , . , , .

:

ij = 0 10 ;

12 : 212 = 4096 ;

: 10/4096 = 0.00244 = 2.44 .

/ . , . (effective number of bits ENOB), , . , . / 6 .

 

3.7. STM32

 

, STM32 - . , 2.4 3.6. () 璺 , . 12- 1. 18 , 16 . [6].

3.5 12-

 

( 3.6). 8 1.5 239.5 .

3.6

 

Standard Peripherals Library , ST Microelectronics. :

ADC_InitTypeDef :

ADC_ContinuousConvMode : , ENABLED / DISABLED;

ADC_DataAlign ;

ADC_Mode ;

ADC_NbrOfChannel ;

ADC_ScanConvMode

:

void ADC_StructInit(ADC_InitTypeDef * ADC_InitStructure) ;

void ADC_Init(ADC1, &ADC_InitStructure) 1 ;

void ADC_TempSensorVrefintCmd(ENABLE) 17 , 䒺 ;

void ADC_Cmd(ADC1, ENABLE) .

 

3.8. USART

 

USART ( - - ()) . USART . USART SPI SPI.

. . USART , , - . ϳ , . . , . , ( ).

, , . . STM32 3 , , . 4.5 /. , .. (8 9 ), -, . APB2, 72 . 36- APB1.

. , - . , () . , . , Tx ( 3.7). , , CTS RTS.

3.7 -

 

, . - (), SPI- , 3- ( 3.8). , SPI . , - SPI .

 

3.8 SPI

 

USART Standard Peripherals Library , ST Microelectronics. :

void USART_Init(USART_TypeDef * USARTx, USART_InitTypeDef * USART_InitStructure) USARTx (USART1, USART2, USART3) USART_InitStruct .

void USART_Cmd(USART_TypeDef * USARTx, ENABLE) USARTx;

void USART_SendData(USARTy, One_byte) USARTy , One_byte, ;

uint16_t USART_ReceiveData(USARTy) USARTy;

FlagStatus USART_GetFlagStatus(USARTy, USART_FLAG_TC) USARTy;

FlagStatus USART_GetFlagStatus(USARTy, USART_FLAG_RXNE) USARTy.

USART_InitStruct :

USART_BaudRate ;

USART_HardwareFlowControl . ;

USART_Mode ;

USART_Parity / . .

USART_StopBits . . , . , .

USART_WordLength . 8 9 .

 

3.9. ǒ

 

璺 USB-USART ( 3.9). USB , COM , .

3.9 USB-USART

 

USB-USART FT232R . , , ( 3.10).

3.10 USB-USART

 

COM (RS-232 ), USB. MAX232. RS-232 UART ( ), 10-12 5, . MAX232 ( 3.11).

3.11 RS-232-USART

 

璺 - ( 3.12).

3.12 ǒ

 

ϳ 璺 , , .


 

4.

 

4.1.

 

, , IAR Embedded Workbench [8].

񳺿 , , int main(void) void InitAll(void), void InitGPIO(void), void InitUSART(void), void InitADC(void), , - , - - () - . .

void InitGPIO(void) - . - . A E 5. , . ϳ , . 32- . 64- . ֳ 64 4- , -. , 4- 2- 2- . , : , :

, , ;

, , , . : 2, 10 50 .

- , , ѻ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE). ϳ GPIO_InitStructure GPIO_InitTypeDef. , PC9 PC8 . 䒺 . , , . GPIO_InitTypeDef :

GPIO_Pin . ֳ , GPIO_Pin_6, GPIO_Pin_All;

GPIO_Speed . GPIO_Speed_2MHz, GPIO_Speed_10MHz, GPIO_Speed_50MHz, 2, 10, 50;

GPIO_Mode /.

GPIO_InitStructure :

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP.

GPIO_Init(GPIOC, &GPIO_InitStructure), , , .

USART ADC , , GPIO_InitTypeDef.

ѻ , - 15 :

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

GPIO_InitStructure.GPIO_Speed = (GPIOSpeed_TypeDef)0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

GPIO_Init (GPIOC, &GPIO_InitStructure).

Tx, Rx USART1 . Tx :

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; - 9 . Transmitted Data (Tx), , .

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOA, &GPIO_InitStructure).

Rx , , Tx , :

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA, &GPIO_InitStructure).

ϳ - . USART ADC .

InitUSART(void) USART1 USB-USART . ϳ , 䒺 USART , , . (NVIC) Cortex. NVIC_InitStructure NVIC_InitTypeDef, USART1 . :

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure) . ϳ , USART1 :

USART_BaudRate = 115200; - 256000 ;

USART_WordLength = USART_WordLength_8b; - 8 ;

USART_StopBits = USART_StopBits_1; - ;

USART_Parity = USART_Parity_No; - ;

USART_HardwareFlowControl = USART_HardwareFlowControl_None; - ;

USART_Mode = USART_Mode_Rx | USART_Mode_Tx; - USART . , , .

USART_Init(USART1, &USART_InitStructure), USART_InitStructure USART1.

ϳ , void USART1_IRQHandler (void) ( 4.1), , USART_GetITStatus(USART1, USART_IT_RXNE) SET , , USART_GetITStatus(USART1, USART_IT_TXE) SET, .

4.1

 

InitADC(void) 12 - . PC5 PB0 . 䒺 . ϳ , ADC_InitStructure . ADC_TempSensorVrefintCmd(ENABLE) 17 , 䒺 . ADC_InitStructure:

ADC_Mode = ADC_Mode_Independent;

ADC_ScanConvMode = DISABLE;

ADC_ContinuousConvMode = DISABLE;

ADC_ExternalTrigConv=DC_ExternalTrigConv_None;

DataAlign = ADC_DataAlign_Right;

ADC_NbrOfChannel = 1;

ADC_Init(ADC1, &ADC_InitStructure) - . ADC_Cmd(ADC1, ENABLE).

ϳ , , while(1){}, , , PC9 PC8 , . GPIO_SetBits(GPIOC, GPIO_Pin_9), GPIOC , GPIO_Pin_9 9 , GPIO_ResetBits(GPIOC, GPIO_Pin_9). , , , delay_ms(20), 20 .

, GetADC1Channel(ADC_Channel_15) 15 , 4095 ( 12 ) 3.3 ( , ) 15 .

, GetADC1Channel(ADC_Channel_8) 8 GetADC1Channel17(ADC_Channel_16) 16, ( 4.2).

4.2

, USART1 void USART1_IRQHandler(void), USART_ReceiveData(USART1) . , 1, 2, 3 USART , .

 

4.2.

 

MS Visual Studio 2008.NET Visual C# [9].

SerialPort. . - , , . , ᒺ Stream, BaseStream, , . 4.1 . 4.2 [7].

SerialPort : ASCIIEncoding, UTF8Encoding, UnicodeEncoding, UTF32Encoding, - , mscorlib.dll.

 

4.1 System.IO.Ports.SerialPort

BaudRate ( ).
BytesToRead , .

4.1 ()

BytesToWrite , .
DataBits .
Encoding .
IsOpen , ᒺ SerialPort .
Parity .
PortName , , - COM.
ReadBufferSize SerialPort.
ReadTimeout .
StopBits .
WriteTimeout .

 

4.2 System.IO.Ports.SerialPort

Close 璺 , IsOpen false ᒺ Stream.
Open ³ 璺 .
GetPortNames .
Read(Byte[], Int32, Int32) SerialPort , .

4.2 ()

ReadByte SerialPort .
Write(String) .
Write(Byte[], Int32, Int32) , .

 

ϳ ᒺ sp , :

BaudRate ( ), 115200;

StopBits ( ), 1 ;

PortName , ;

DataBits 8;

Parity .

 

ϳ ᒺ Open(), Close().

ᒺ trd Thread. , 璺 ϳ. , sp.WriteLine(Command), Command : 1, 2, 3 ( 4.3).

1, ADC1_IN15 , .

2, ADC1_IN8 , .

4.3

 

3, ADC1_IN16 , .

.

ϳ , Thread.Sleep(TimerInterval) TimerInterval , . . .

ϳ sp.ReadExisting(). strgetV, strgetT1, strgetT2 . .

DrawGraphics . Graphics. Graphics , . , , , ᒺ Graphics. ᒺ Graphics .

.

1. ᒺ Graphics.

2. ᒺ Graphics , .

ϳ ᒺ Graphics , . ᒺ, ᒺ Graphics.

Pen , ᒺ.

Brush , , .

Font , .

Color [10].

ᒺ: obj1, obj2, obj3 DrawGraphics. ᒺ ᒺ PictureBox .

TimerDraw Draw(float new_y) obj1, obj2, obj3 new_y ( 4.4).

4.4

 

Access 2002 2003, BDAddapter. , TimerWriteToBD, . . AddToLog(string sensor_id, DateTime date, string value) BDAddapter, , .

 

 

5.

 

5.1. ϳ

 

:

璺 USB-USART STM32 VL DISCOVERY USART . USART1 STM32 VL DISCOVERY PA9 (USART1_TX) PA10 (USART1_RX);

ϳ . PC5 (ADC1_IN15) PB0 (ADC1_IN8) ;

ϳ USB-USART USB , . .

ϳ STM32 VL DISCOVERY USB , . .

 

5.2.

 

UART.exe ( 5.1)

5.1

ϳ USART 璺 , USB USART ( 5.2)

5.2 璺

115200 ʻ.

, History > ( 5.3)

5.3

³ Ļ ( 5.4).

5.4 ³ Ļ

. 𳿻 History.

ϳ . , .

: , 1, 2 ().

0 3.3 , 100 ( 5.5).

1 , .

2 , . ( 5.6).

 

5.5

 

5.6

 

𳿻, Access 2002 2003, Log_telemetry.mdb. Microsoft Office Access ( 5.7).

5.7 ³

main : id_sensor, DateTime_, value_.

³: id_sensor value_ DateTime_.

 


 

 

' #, USART , , IAR Embedded Workbench. ' USB-UART . ̳ - , . , : , , .


 

1. ST Microelectronics STM32 VL DISCOVERY [ ]. : http://www.rlocman.ru/op/tovar.html?di=66950&/STM32VLDISCOVERY

2. ST Microelectronics STM32F 32-bit MCUs [ ]. : http://www.st.com/internet/mcu/subclass/ 1169.jsp

3. CMSIS Standard Peripherals LibraryPrint [ ]. : http://easyelectronics.ru/ arm-uchebnyj-kurs-keil-cmsis-sozdanie-proekta.html

4. CMSIS[ ]. : http://easyelectronics.ru/arm-uchebnyj-kurs-iar-ewarm-sozdanie-proekta-chast-2-cmsis-i-standard-peripherals-library.html

5. Silicon Laboratories (SiLabs) - ? [ ]. : http://www.efo.ru/Silabs.pl

6. - ϔ[ ]. : http://www.gaw.ru/html.cgi/txt/doc/micros/ arm/cortex_arh/5_1_3.htm

7. MSDN SerialPort - [ ]. : http://msdn.microsoft.com/ru-ru/library/system.io.serialport. aspx

8. ., . . // .: , 2007. 304 .

9. .., .. Visual C# 2010: . // .: , 2010. 696 .

10. C# 2010: . // .: , 2010. 592 .



<== | ==>
( ) |
:


: 2016-07-29; !; : 1133 |


:

:

: , .
==> ...

1687 - | 1653 -


© 2015-2024 lektsii.org - -

: 0.322 .