ŠĻą”±į>ž’ ]_ž’’’\’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ģ„Į'` šRæ¶RbjbjÓÓ2Xr¹r¹{'’’’’’’¤zzzzzzzŽV&V&V&V& b&TŽ’9ņĀ&Ā&Ā&Ā&Ā&Ā&Ā&Ā&9999999$ń:hY=:89z~(Ā&Ā&~(~(89zzĀ&Ā&¹9ö8ö8ö8~(Ž zĀ&zĀ&9ö8~(9ö8ö8zzö8Ā&¶& ^?oŽĶV&\3zö89Ļ90’9ö8“=Ö8“=ö8“=zö8Ā&0ņ&"ö8'0'NĀ&Ā&Ā&8989ģ8 Ā&Ā&Ā&’9~(~(~(~(ŽŽŽ$"²%¤ŽŽŽ²%ŽŽŽzzzzzz’’’’ #include "stm32f10x.h" #include "systick.h" #include #ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls __io_putchar() */ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* __GNUC__ */ /* Private define ------------------------------------------------------------*/ #define ADC1_DR_Address ((u32)0x4001244C) /* Private function prototypes -----------------------------------------------*/ void GPIO_Configuration(void); void USART_Configuration(void); void ADC_Configuration(void); /* Private variables ---------------------------------------------------------*/ float AD_value; vu16 ADC_ConvertedValue; /******************************************************************************* * Function Name : main * Description : Main program * Input : None * Output : None * Return : None * Attention : None *******************************************************************************/ int main(void) { GPIO_Configuration(); USART_Configuration(); ADC_Configuration(); delay_init(); /* Infinite loop */ while (1) { /* Printf message with AD value to serial port every 1 second */ AD_value = ADC_ConvertedValue; AD_value = (AD_value/4096)*3.3; delay_ms(500); printf(" AD value1 = %4.2fV \r\n", AD_value); delay_ms(500); printf(" AD value2 = %4.2fV \r\n", AD_value); delay_ms(500); printf(" AD value3 = %4.2fV \r\n", AD_value); delay_ms(500); printf(" AD value4 = %4.2fV \r\n", AD_value); delay_ms(500); printf(" AD value5 = %4.2fV \r\n", AD_value); delay_ms(500); printf(" AD value6 = %4.2fV \r\n", AD_value); delay_ms(500); printf(" AD value7 = %4.2fV \r\n", AD_value); delay_ms(500); printf(" AD value8 = %4.2fV \r\n", AD_value); delay_ms(500); /*====LED-ON=======*/ GPIO_SetBits(GPIOD , GPIO_Pin_8); GPIO_SetBits(GPIOD , GPIO_Pin_9); GPIO_SetBits(GPIOD , GPIO_Pin_10); GPIO_SetBits(GPIOD , GPIO_Pin_11); delay_ms(500); /* delay 500ms */ /*====LED-OFF=======*/ GPIO_ResetBits(GPIOD , GPIO_Pin_8); GPIO_ResetBits(GPIOD , GPIO_Pin_9); GPIO_ResetBits(GPIOD , GPIO_Pin_10); GPIO_ResetBits(GPIOD , GPIO_Pin_11); delay_ms(500); /* delay 500ms */ } } /******************************************************************************* * Function Name : GPIO_Configuration * Description : Configures the different GPIO ports. * Input : None * Output : None * Return : None * Attention : None *******************************************************************************/ void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOB , ENABLE); /** * LED1 -> PD8 , LED2 -> PD9 , LED3 -> PD10 , LED4 -> PD11 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; ; GPIO_Init(GPIOD, &GPIO_InitStructure); /* Configure PC.05-00 (ADC Channel15-10) as analog input -------------------------*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_4 | GPIO_Pin_3 | GPIO_Pin_2 | GPIO_Pin_1 | GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOC, &GPIO_InitStructure); /*PB01 PB0*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; ; GPIO_Init(GPIOB, &GPIO_InitStructure); } /******************************************************************************* * Function Name : USART_Configuration * Description : Configure USART1 * Input : None * Output : None * Return : None * Attention : None *******************************************************************************/ void USART_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1,ENABLE); /* * USART1_TX -> PA9 , USART1_RX -> PA10 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_ITConfig(USART1, USART_IT_TXE, ENABLE); USART_Cmd(USART1, ENABLE); } /******************************************************************************* * Function Name : ADC_Configuration * Description : Configure the ADC. * Input : None * Output : None * Return : None * Attention : None *******************************************************************************/ void ADC_Configuration(void) { ADC_InitTypeDef ADC_InitStructure; DMA_InitTypeDef DMA_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_AFIO, ENABLE); /* DMA channel1 configuration ----------------------------------------------*/ DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; //DMAł[”^„vY¾‹śW0W@W DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue; //…QX[X[ØPśW0W@W ’š[IN„vN*NpeÄ~ DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //DMAlbc!j_:NSRC!j_ ’1uY¾‹,dūy0R…QX[ DMA_InitStructure.DMA_BufferSize = 8; // DMAX['Y\ ’8*N’¾‹nDMA(W O“öe²Q:S„v•¦^ ’ DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //„c6eN!kpencT ’¾‹Y0W@WybkTūy’¾‹nDMA„vY¾‹žX!j_ ’ DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable; //sQķ•„c6eN!kpencT ’īvh…QX[0W@WTūy’¾‹nDMA„v…QX[žX!j_ ’ DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; //š[INY¾‹penc•¦^ DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; //Ŗ_Æs!j__/T ’Buf™QįnT ’źØRŽV0RRĖY0W@W_ĖY O“ DMA_InitStructure.DMA_Priority = DMA_Priority_High; //OHQ§~Ųš DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); /* Enable DMA1 channel1 */ DMA_Cmd(DMA1_Channel1, ENABLE); /* ADC1 configuration ------------------------------------------------------*/ ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; /* ģrĖz!j_ */ ADC_InitStructure.ADC_ScanConvMode = ENABLE; /* Žķ~YS!j_ */ ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; /* Žķ~lbc */ ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; /* lbc N×SYLu³Qš[ */ ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; /* óSł[PŸ */ ADC_InitStructure.ADC_NbrOfChannel = 8; /* kbĻcSpe */ ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 regular channel15 configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 1, ADC_SampleTime_55Cycles5); /* SX,Ē‘(uöeō•:N55.5hTg,1ćNhˆÄ‰RS,{1*N */ ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 2, ADC_SampleTime_55Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 3, ADC_SampleTime_55Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 4, ADC_SampleTime_55Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 5, ADC_SampleTime_55Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 6, ADC_SampleTime_55Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 7, ADC_SampleTime_55Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 8, ADC_SampleTime_55Cycles5); /* Enable ADC1 DMA */ ADC_DMACmd(ADC1, ENABLE); // 0D¶RõęõäõUh¼vˆh¼vˆB*CJaJph’h¼vˆh¼vˆCJaJ,?@P¢Ķ  ? U V § Ō Õ & E e ƒ „ Õ å ž ’ P h ˆ   ø śśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆ¶Rżø Š å 6 E G ^ v Œ  ž ¶ Ä Ē  0 S j ž ± ā ö ':k€±Åö śśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆ :L}¬ŃöBhƒŖŃł!HKMOP”Ē’/G\­śśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆ­ĖĶō÷gmŖ²;qšØ’lœĒÜHrtuĘķ*BZśśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆZoĄßā 34„‰³¼ņ%[‰ŠĄś/XYˆĘ’5‡ÉŹ÷śśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆ÷(XZwyzĖš.F^sÄįć-.c° ¾ `!ś!Ę"Š#śśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆŠ#<$Č$p%š%'&V&Y&v&˜&&ī&(”()Ģ)Z*Ų*$+&+‚+d,- -.n.½. /Y/Z/śśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆZ/[/s/DDFDŽDDöDPEĀE8F:FzFŠF$G’GžGīG|H‚HŚH,IlInIpItIvI~IJśśśśśśśśśśśśśśśśśśśśśśśśśśśśśgd¼vˆOż€ADC1!jWWDMA /* Enable ADC1 */ ADC_Cmd(ADC1, ENABLE); //Sb_ADC1 /* Enable ADC1 reset calibaration register */ ADC_ResetCalibration(ADC1); //Ķ‘n!hŒšÄ[X[hV /* Check the end of ADC1 reset calibration register */ while(ADC_GetResetCalibrationStatus(ADC1)); //I{…_Ķ‘n!hŒšbŸR /* Start ADC1 calibaration */ ADC_StartCalibration(ADC1); //_ĖYADC!hŒš /* Check the end of ADC1 calibration */ while(ADC_GetCalibrationStatus(ADC1)); //I{…_ADC!hŒš}Y /* Start ADC1 Software Conversion */ ADC_SoftwareStartConvCmd(ADC1, ENABLE); /* Oż€lbc_ĖY */ //oöNę‰ŃS_ĖYlbc while(!DMA_GetFlagStatus(DMA1_FLAG_TC1)); /* Clear Channel 1 DMA_FLAG_TC flag */ DMA_ClearFlag(DMA1_FLAG_TC1); } /** * @brief Retargets the C library printf function to the USART. * @param None * @retval None */ PUTCHAR_PROTOTYPE { /* Place your implementation of fputc here */ /* e.g. write a character to the USART */ USART_SendData(USART1, (uint8_t) ch); /* Loop until the end of transmission */ while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) //ĄhågŃS/f&TŒ[b { } return ch; } #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred. * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t* file, uint32_t line) { /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* Infinite loop */ while (1) { } } #endif /********************************************************************************************************* END FILE *********************************************************************************************************/ J$JFJPJtJxJŲJ0K€K‚KŲKpLxL€L‚LœL L¢LŅLŌLÜLrMŌM8NØNŹNŌN6O#B#Ą#É#$W$c$i$r$|$’$”$ß$ä$%%@%L%€%„%Š%Ž%&&z&&}'33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333'z'}'}'å¼vˆ’@€99øŅŪ\\99|dddd {'@@@ @"@$@L@@(@*@,@\@@D’’Unknown’’’’’’’’’’’’G‡z €’Times New Roman5€Symbol3& ‡z €’Arial;†‹[SOSimSun qˆ¤hćŒGåŒGä—!Gä—!G-!),.:;?]}Ø·ĒÉ    & 6"0000 0 0 00000’’’ ’ ’’’’’=’@’\’]’^’ą’([{·  0 0 00000’’;’[’į’å’ “œ‚€2g'g'@HX(š’?Ø’’’’’’’’’’’’’’’’’’’’’¼vˆ2’’®_o(u7b®_o(u7bž’ą…ŸņłOh«‘+'³Ł0`ˆœØ¼ČÜ šü  ( 4@HPXØ Ī¢ČķÓĆ»§ Normal.dot Ī¢ČķÓĆ»§2Microsoft Office Word@Œ†G@ŹQŽĶ@VŲfŽĶä—!ž’ÕĶ՜.“—+,ł®0“ X`t|„Œ ”œ¤¬Ø Ī¢ČķÖŠ¹śGg''   !"#$%&'()*+,ž’’’./0123456789:;<=>?@ABCDEFGHIJKž’’’MNOPQRSž’’’UVWXYZ[ž’’’ż’’’^ž’’’ž’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Root Entry’’’’’’’’ ĄFŠŗToŽĶ`€1Table’’’’’’’’-“=WordDocument’’’’’’’’2XSummaryInformation(’’’’LDocumentSummaryInformation8’’’’’’’’’’’’TCompObj’’’’’’’’’’’’m’’’’’’’’’’’’’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’ ’’’’ ĄFMicrosoft Office Word Īĵµ MSWordDocWord.Document.8ō9²q