久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2466|回復: 0
打印 上一主題 下一主題
收起左側

藍橋杯CT117E STM32測試源程序

[復制鏈接]
跳轉到指定樓層
樓主
“藍橋杯”使用的CT117E嵌入式。


單片機源程序如下:
  1. /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
  2. * File Name          : main.c
  3. * Author             : MCD Application Team
  4. * Version            : V3.0.0
  5. * Date               : 04/06/2009
  6. * Description        : Virtual Com Port Demo main file
  7. ********************************************************************************
  8. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  9. * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
  10. * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  11. * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
  12. * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
  13. * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  14. *******************************************************************************/

  15. /* Includes ------------------------------------------------------------------*/
  16. #include "stm32f10x.h"
  17. #include "stdio.h"

  18. #include "main.h"
  19. #include "lcd.h"
  20. #include "i2c.h"
  21. #include "adc_single.h"
  22. #include "usart.h"
  23. #include "stdlib.h"

  24. #define COL(X) (319-(X)*16+16)

  25. /* Private typedef -----------------------------------------------------------*/
  26. /* Private define ------------------------------------------------------------*/
  27. /* Private macro -------------------------------------------------------------*/
  28. /* Private variables ---------------------------------------------------------*/
  29. static __IO uint32_t TimingDelay;
  30. extern USART_TypeDef* USARTx;
  31. extern vu16 dummy;  //LCD型號定位
  32. void Delay_Ms(__IO uint32_t nTime);

  33. /* Extern variables ----------------------------------------------------------*/
  34. /* Private function prototypes -----------------------------------------------*/
  35. /* Private functions ---------------------------------------------------------*/
  36. /**
  37.   * @}
  38.   */
  39. void RCC_Configuration(void)
  40. {
  41.   /* GPIOA Periph clock enable */
  42.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  43.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  44.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  45.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
  46.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

  47. //  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  48. }

  49. /**
  50.   * @}
  51.   */
  52. void GPIO_Configuration(void)
  53. {
  54.   GPIO_InitTypeDef GPIO_InitStructure;

  55.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  56.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_2  ;
  57.   GPIO_Init(GPIOD, &GPIO_InitStructure);
  58.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4  ;
  59.   GPIO_Init(GPIOB, &GPIO_InitStructure);

  60.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 |
  61.                                                                            GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15  ;
  62.   GPIO_Init(GPIOC, &GPIO_InitStructure);

  63.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_1 | GPIO_Pin_4 |
  64.                                                                            GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7   ;
  65.   GPIO_Init(GPIOA, &GPIO_InitStructure);


  66.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  67.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_8;
  68.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  69.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
  70.   GPIO_Init(GPIOB, &GPIO_InitStructure);

  71. }

  72. //void NVIC_Configuration(void)
  73. //{
  74. //  NVIC_InitTypeDef NVIC_InitStructure;
  75. //  
  76. //#ifdef  VECT_TAB_RAM  
  77. //  /* Set the Vector Table base location at 0x20000000 */
  78. //  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
  79. //#else  /* VECT_TAB_FLASH  */
  80. //  /* Set the Vector Table base location at 0x08000000 */
  81. //  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
  82. //#endif
  83. //
  84. //  /* Configure one bit for preemption priority */
  85. //  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  86. //  
  87. //  /* Enable the EXTI9_5 Interrupt */
  88. //  NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
  89. //  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  90. //  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  91. //  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  92. //  NVIC_Init(&NVIC_InitStructure);
  93. //}

  94. //void delay()
  95. //{
  96. //        unsigned int i,j;
  97. //        for (i = 0;i<0xffff;++i)
  98. //                for(j=0;j<0x7f;++j);
  99. //}

  100. /*******************************************************************************
  101. * Function Name  : main.
  102. * Description    : Main routine.                                                                                                                                 
  103. * Input          : None.
  104. * Output         : None.
  105. * Return         : None.
  106. *******************************************************************************/
  107. int main(void)
  108. {
  109.         int n;
  110. //  unsigned short Pin;
  111.         unsigned char lcd_type[4];  //保存LCD型號的數組
  112.         unsigned char bai,shi,ge;
  113.         float ad_value;
  114.         int toggle;

  115.         RCC_Configuration();
  116.         GPIO_Configuration();

  117.                                                         GPIO_PinRemapConfig ( GPIO_Remap_SWJ_NoJTRST ,ENABLE);  

  118. //  NVIC_Configuration();
  119.         i2c_init();
  120.         adc_init();
  121.         usart_init();

  122.         if (SysTick_Config(SystemCoreClock / 1000))
  123.         {
  124.         /* Capture error */
  125.                 while (1);
  126.         }   

  127.     n=x24c02_read(0xff);
  128.         Delay_Ms(10);
  129.         ++n;
  130.         x24c02_write(0xff,n);
  131.         
  132.         bai = n/100;
  133.         shi = (n-bai*100) / 10;                //ADC數值的十號準備情況參考這些數值  Capture error
  134.         ge = n % 10;                                //ADC數值的個位準備情況參考這些數值  Capture error準備情況

  135.     STM3210B_LCD_Init();
  136.     LCD_Clear(Blue);
  137.     LCD_SetBackColor(Red);

  138.     /* Set the LCD Text Color */
  139.     LCD_SetTextColor(Grey);

  140.         lcd_type[0] = (dummy>>12)+'0';
  141.         lcd_type[1] = ((dummy&0x0f00)>>8)+'0';
  142.         lcd_type[2] = ((dummy&0x00f0)>>4)+'0';
  143.         lcd_type[3] = (dummy&0x000f)+ '0';
  144.          
  145.     LCD_DisplayStringLine(Line0, "                    ");
  146.     LCD_DisplayStringLine(Line1, "    Welcome to      ");
  147.     LCD_DisplayStringLine(Line2, "                    ");

  148.     LCD_SetBackColor(Green);
  149. //        LCD_SetTextColor(Grey);

  150.     LCD_DisplayStringLine(Line4, "        GXCT        ");
  151.     LCD_DisplayStringLine(Line3, "                    ");
  152.     LCD_DisplayStringLine(Line5, "                    ");


  153.     LCD_SetBackColor(Blue);
  154. //        LCD_SetTextColor(Grey);

  155.     LCD_DisplayStringLine(Line6, "                    ");
  156.         LCD_DisplayStringLine(Line7, "   LCD TYPE:        ");
  157.         LCD_SetTextColor(Yellow);
  158.         LCD_DisplayChar(Line7,COL(13),lcd_type[0]);
  159.         LCD_DisplayChar(Line7,COL(14),lcd_type[1]);
  160.         LCD_DisplayChar(Line7,COL(15),lcd_type[2]);
  161.         LCD_DisplayChar(Line7,COL(16),lcd_type[3]);

  162.     LCD_DisplayStringLine(Line8, "                    ");
  163.     LCD_DisplayStringLine(Line9, "                    ");

  164.         LCD_SetTextColor(Green);        
  165.         LCD_DisplayChar(Line9,COL(19),ge+'0');
  166.         if ( n > 9 ) LCD_DisplayChar(Line9,COL(18),shi+'0');  
  167.         if ( n > 99 ) LCD_DisplayChar(Line9,COL(17),bai+'0');  
  168.         LCD_SetTextColor(Grey);

  169.         GPIO_Write(GPIOC,0xffff);
  170.         GPIO_SetBits(GPIOD,GPIO_Pin_2);
  171.         GPIO_ResetBits(GPIOD,GPIO_Pin_2);

  172.         while(1) {

  173.                 if ( GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == RESET ) {
  174. //                        Pin=GPIO_Pin_8 | GPIO_Pin_12;
  175.                         GPIO_Write(GPIOC,0xfcff);
  176.                         GPIO_SetBits(GPIOD,GPIO_Pin_2);
  177.                         GPIO_ResetBits(GPIOD,GPIO_Pin_2);
  178.                 } else if  ( GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8) == RESET ) {
  179. //                        Pin=GPIO_Pin_9 | GPIO_Pin_13;
  180.                         GPIO_Write(GPIOC,0xf3ff);
  181.                         GPIO_SetBits(GPIOD,GPIO_Pin_2);
  182.                         GPIO_ResetBits(GPIOD,GPIO_Pin_2);
  183.                 } else if  ( GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1) == RESET ) {
  184. //                        Pin=GPIO_Pin_10 | GPIO_Pin_14;
  185.                         GPIO_Write(GPIOC,0xcfff);
  186.                         GPIO_SetBits(GPIOD,GPIO_Pin_2);
  187.                         GPIO_ResetBits(GPIOD,GPIO_Pin_2);
  188.                 } else if  ( GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2) == RESET ) {
  189. //                        Pin=GPIO_Pin_11 | GPIO_Pin_15;
  190.                         GPIO_Write(GPIOC,0x3fff);
  191.                         GPIO_SetBits(GPIOD,GPIO_Pin_2);
  192.                         GPIO_ResetBits(GPIOD,GPIO_Pin_2);
  193.                 }


  194.                 if  ( GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2) == RESET ) {
  195.                         GPIO_ResetBits(GPIOB,GPIO_Pin_4);
  196.                 } else {
  197.                         GPIO_SetBits(GPIOB,GPIO_Pin_4);
  198.                 }

  199. //                Pin=GPIO_Pin_8;
  200. //                for ( i=0;i<8;++i) {
  201. //                        GPIO_SetBits(GPIOD,GPIO_Pin_2);
  202. //                        GPIO_Write(GPIOC,Pin);
  203. //                        GPIO_ResetBits(GPIOD,GPIO_Pin_2);

  204. //                        delay();
  205. //                        Pin<<=1;
  206. //                }

  207.                 ad_value= adc_read();
  208.                 ge=ad_value;
  209.                 shi=(int)(ad_value*10)%10;
  210.                 bai= (int)(ad_value*100)%10;
  211.                 LCD_SetTextColor(Red);
  212.                  LCD_DisplayChar(Line9,COL(2),ge+'0');
  213.                  LCD_DisplayChar(Line9,COL(3),'.');
  214.                 LCD_DisplayChar(Line9,COL(4),shi+'0');  
  215.                 LCD_DisplayChar(Line9,COL(5),bai+'0');  

  216.                    USARTx = USART2;
  217.                 if( (n=USART_getch()) != -1 ) {
  218.                         LCD_DisplayChar(Line8,COL(12),n);  
  219.                         printf("USART2 Echo: %f\r\n",rand()*25./RAND_MAX);
  220.                         
  221. //                        printf("USART2 Echo: %c\r\n",n);
  222.                 }
  223.                    USARTx = USART1;
  224.                 if( (n=USART_getch()) != -1 ) {
  225.                         LCD_DisplayChar(Line8,COL(9),n);
  226.                         printf("USART1 Echo: %c\r\n",n);
  227.                 }

  228.                 toggle = ! toggle;
  229.                 if ( toggle ) {
  230.                         GPIO_SetBits(GPIOA,GPIO_Pin_1);
  231.                         GPIO_SetBits(GPIOA,GPIO_Pin_4);
  232.                         GPIO_SetBits(GPIOA,GPIO_Pin_5);
  233.                         GPIO_SetBits(GPIOA,GPIO_Pin_6);
  234.                         GPIO_SetBits(GPIOA,GPIO_Pin_7);
  235.                 }else{
  236.                         GPIO_ResetBits(GPIOA,GPIO_Pin_1);
  237.                         GPIO_ResetBits(GPIOA,GPIO_Pin_4);
  238.                         GPIO_ResetBits(GPIOA,GPIO_Pin_5);
  239.                         GPIO_ResetBits(GPIOA,GPIO_Pin_6);
  240.                         GPIO_ResetBits(GPIOA,GPIO_Pin_7);
  241.                 }
  242.         }
  243. }        


  244. void Delay_Ms(__IO uint32_t nTime)
  245. {
  246.   TimingDelay = nTime;

  247. ……………………

  248. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
CT117E-測試程序.zip (2.52 MB, 下載次數: 15)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩高清在线观看 | www.日韩免费| 国产一区二区免费 | 久久综合一区 | 五月花丁香婷婷 | av乱码| 国产精品久久久亚洲 | 亚洲欧美自拍偷拍视频 | 国产福利91精品一区二区三区 | 亚洲第一区国产精品 | 久www | 国产精品一区一区 | 丝袜美腿av | 九九久久久 | 鲁一鲁资源影视 | av网站在线看| 97国产一区二区精品久久呦 | 激情久久网 | 伊人狠狠| 一本一道久久a久久精品综合蜜臀 | 狠狠操av| 一区二区三区国产精品 | 久久久久资源 | 欧美影院久久 | 亚洲综合天堂网 | 天天搞夜夜操 | 欧美人妇做爰xxxⅹ性高电影 | 国产精品久久久久久久久久久久久 | 影音先锋中文字幕在线观看 | 在线一区 | 综合视频在线 | 欧美日韩一区二区在线 | 免费视频久久久久 | 99久久免费精品国产免费高清 | 男女啪啪高潮无遮挡免费动态 | 久久久久久久久毛片 | 欧美激情一区二区 | 中文字幕 国产精品 | 免费欧美视频 | 99精品久久久 | 精品国产一区二区三区久久久久久 |