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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2323|回復: 2
收起左側

菜雞新手求助怎么將stm32f103代碼移植到stm8s003f3p6

[復制鏈接]
ID:471815 發表于 2019-2-11 15:58 | 顯示全部樓層 |閱讀模式
  1. #include "stm32f10x.h"
  2. #include "stdio.h"
  3. #include "delay.h"
  4. #include "stm32f10x_usart.h"
  5. #include "stm32f10x_tim.h"


  6. RCC_ClocksTypeDef RCC_Clocks;
  7. void RCC_Configuration(void);
  8. void GPIO_Configuration(void);
  9. void ADC_Configuration(void);


  10. int main(void)
  11. {
  12.         int CCR1_Val = 0;
  13.         float VolValue = 0.00;
  14.         u32 ticks = 0;
  15.         RCC_Configuration();
  16.         RCC_GetClocksFreq(&RCC_Clocks);
  17.         GPIO_Configuration();
  18.         ADC_Configuration();
  19. //  TIM_Configuration();

  20.        
  21.        
  22.         while(1)
  23.         {
  24.                 if(ticks ++ >= 2000000)
  25.                 {
  26.                         //float i=0;
  27.                         ticks = 0;
  28.                         VolValue = 3.3 * ADC_GetConversionValue(ADC1)/0X0FFF;
  29.                         if(VolValue >= 3.1 )
  30.                         {
  31.                                 CCR1_Val = 60000;
  32.                         }
  33.                         if(VolValue >= 2.97 &  VolValue < 3.1)
  34.                         {
  35.                                 CCR1_Val = 54000;
  36.                         }
  37.                        
  38.                         if(VolValue >= 2.62 & VolValue < 2.97)
  39.                         {
  40.                                 CCR1_Val = 47700;
  41.                         }
  42.                         if(VolValue >= 2.26 & VolValue < 2.62)
  43.                         {
  44.                                 CCR1_Val = 41100;
  45.                         }
  46.                         if(VolValue >= 1.91 & VolValue < 2.26)
  47.                         {
  48.                                 CCR1_Val = 34680;
  49.                         }
  50.                         if(VolValue >= 1.58 & VolValue < 1.91)
  51.                         {
  52.                                 CCR1_Val = 28680;
  53.                         }
  54.                         if(VolValue >= 1.29 & VolValue < 1.58)
  55.                         {
  56.                                 CCR1_Val = 23400;
  57.                         }
  58.                         if(VolValue >= 1.00 & VolValue < 1.29)
  59.                         {
  60.                                 CCR1_Val = 18300;
  61.                         }
  62.                         if(VolValue >= 0.76 & VolValue < 1.00)
  63.                         {
  64.                                 CCR1_Val = 13740;
  65.                         }
  66.                         if(VolValue >= 0.49 & VolValue < 0.76)
  67.                         {
  68.                                 CCR1_Val = 8820;
  69.                         }
  70.                         if(VolValue >= 0.31 & VolValue < 0.49)
  71.                         {
  72.                                 CCR1_Val = 5700;
  73.                         }
  74.                         if(VolValue >= 0.13 & VolValue < 0.31)
  75.                         {
  76.                                 CCR1_Val = 2400;
  77.                         }
  78.                         if(VolValue >= 0.04 & VolValue < 0.13)
  79.                         {
  80.                                 CCR1_Val = 660;
  81.                         }
  82.                         if(VolValue < 0.04)
  83.                         {
  84.                                 CCR1_Val = 0;
  85.                         }

  86.                        
  87.                        
  88.                                 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
  89.        
  90.                                 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  91.                                 TIM_OCInitTypeDef TIM_OCInitStructure;
  92.                                 TIM_TimeBaseStructure.TIM_Period = 60000;       
  93.                                 TIM_TimeBaseStructure.TIM_Prescaler = 0;        
  94.                                 TIM_TimeBaseStructure.TIM_ClockDivision = 0;       
  95.                                 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;       
  96.                                 TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);       
  97.                                        
  98.                                 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;       
  99.                                 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;       
  100.                                 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  101.                                 TIM_OCInitStructure.TIM_Pulse = CCR1_Val;       
  102.                                 TIM_OC1Init(TIM2,&TIM_OCInitStructure);
  103.                                 TIM_OC1PreloadConfig(TIM2 , TIM_OCPreload_Disable);
  104.                                 TIM_ARRPreloadConfig(TIM2, ENABLE);
  105.                                 TIM_Cmd(TIM2,ENABLE);
  106.                        
  107.                         if(ticks ++ >= 2000000){};
  108.                 }
  109.         }
  110.        
  111. }

  112. void RCC_Configuration(void)
  113. {
  114.        
  115.        
  116.         ErrorStatus HSEStartUpStatus;                  
  117.   RCC_DeInit();                                 
  118.   RCC_HSEConfig(RCC_HSE_ON);                     
  119.   HSEStartUpStatus = RCC_WaitForHSEStartUp();      
  120.   if(HSEStartUpStatus == SUCCESS)                  
  121.   {
  122.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
  123.     FLASH_SetLatency(FLASH_Latency_2);                  
  124.          
  125.     RCC_HCLKConfig(RCC_SYSCLK_Div1);               
  126.     RCC_PCLK2Config(RCC_HCLK_Div1);               
  127.     RCC_PCLK1Config(RCC_HCLK_Div2);               
  128.          
  129.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
  130.     RCC_PLLCmd(ENABLE);                                   
  131.    
  132.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)   
  133.     {
  134.     }
  135.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);            
  136.     while(RCC_GetSYSCLKSource() != 0x08)                 
  137.     {
  138.     }
  139.   }

  140.        
  141. }


  142. void GPIO_Configuration(void)
  143. {
  144.                
  145.         GPIO_InitTypeDef GPIO_InitStructure;
  146.        
  147.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

  148.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  
  149.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  150.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  151.         GPIO_Init(GPIOA, &GPIO_InitStructure);
  152.        
  153.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  154.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  155.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  156.         GPIO_Init(GPIOB, &GPIO_InitStructure);
  157. }



  158. void ADC_Configuration(void)
  159. {
  160.         ADC_InitTypeDef ADC_InitStructure;
  161.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);

  162.         RCC_ADCCLKConfig(RCC_PCLK2_Div4);
  163.        
  164.         ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  165.         ADC_InitStructure.ADC_ScanConvMode = ENABLE;
  166.         ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
  167.         ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  168.         ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  169.         ADC_InitStructure.ADC_NbrOfChannel = 1;
  170.         ADC_Init(ADC1,&ADC_InitStructure);
  171.        
  172.         ADC_RegularChannelConfig(ADC1,ADC_Channel_8,1,ADC_SampleTime_55Cycles5);
  173.         ADC_Cmd(ADC1, ENABLE);
  174.         ADC_ResetCalibration(ADC1);
  175.         while(ADC_GetResetCalibrationStatus(ADC1));
  176.         ADC_StartCalibration(ADC1);
  177.         while(ADC_GetCalibrationStatus(ADC1));
  178.         ADC_SoftwareStartConvCmd(ADC1,ENABLE);
  179. }
復制代碼


回復

使用道具 舉報

ID:77479 發表于 2019-2-12 23:56 | 顯示全部樓層
你先把上面程序的基本功能理出來,供人家參考?纯词欠衲苻D換。畢竟,你要求是把32位的程序轉換成8位的程序。
回復

使用道具 舉報

ID:476375 發表于 2019-2-14 10:38 | 顯示全部樓層
32位的移植到8位的,首先庫函數不能用了。RCC,GPIO,ADC這些外設要根據8位的MCU地址映射使用
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天看天天操 | 国产一区二区三区四区hd | 欧洲精品久久久久毛片完整版 | 日韩伦理一区二区 | 免费观看羞羞视频网站 | 韩日一区二区三区 | 成人免费福利视频 | 伊人婷婷| 亚洲欧美日本国产 | 久久久久一区二区三区四区 | 久久久久国产一区二区三区不卡 | 日韩精品视频在线观看一区二区三区 | 亚洲高清av | japanhd美女动 | 手机在线观看av | 天天影视亚洲综合网 | 一级片在线观看 | 一区二区三区欧美大片 | 欧美日韩在线视频观看 | 在线国产欧美 | 国产精品久久久久久久久久 | 91精品国产综合久久婷婷香蕉 | 欧美成人精品激情在线观看 | 日韩视频一区在线观看 | 在线观看国产wwwa级羞羞视频 | 国产一区 | 国产一区视频在线 | 亚洲在线| 国产在线视频在线观看 | 欧美中文在线 | 国产精品污www一区二区三区 | 日本高清不卡视频 | 激情欧美一区二区三区中文字幕 | 色欧美综合 | 午夜在线视频 | 国产精品久久久久9999鸭 | 国产美女一区二区三区 | 国产一区二区在线看 | 日韩中文字幕在线视频观看 | 欧美福利一区 | 日韩看片|