亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: Proteus仿真stm32f103r6輸出PWM/正弦波 源程序 [打印本頁]

作者: 541板哥    時間: 2018-12-19 19:08
標題: Proteus仿真stm32f103r6輸出PWM/正弦波 源程序
資源全部原創,有任何問題歡迎聯系
基于stm32f103r6的pwm輸出,再經過RC低通濾波實現正弦波輸出,使用protues仿真實現




仿真文件

示例代碼
  1. #include "pbdata.h"

  2. u16 fre;
  3. void RCC_Configuration(void);
  4. void GPIO_Configuration(void);
  5. void TIM3_Configuration();

  6. void  Delay (uint32_t nCount)
  7. {
  8.   for(; nCount != 0; nCount--);
  9. }

  10. int main(void)
  11. {
  12.      u16 arr=42000;
  13.      u16 led_dt = arr/2;

  14.                  RCC_Configuration();        //系統時鐘初始化
  15.                  GPIO_Configuration();//端口初始化
  16.                  TIM3_Configuration(arr);//定時器和pwm配置
  17.         
  18.                  while(1)
  19.                  {        
  20.                                 TIM_SetCompare2(TIM3,led_dt); //用的是TIM3的通道2,輸出PWM         送到相應的寄存器中   //滿占空比為900               
  21.                         

  22.                                                 GPIO_SetBits(GPIOB,GPIO_Pin_5);        //LED 發光
  23.                                                         Delay(0x2ffff);
  24.                                                 GPIO_ResetBits(GPIOB,GPIO_Pin_5);//LED 熄滅
  25.                                                         Delay(0x2ffff);
  26.                                                 
  27.                               
  28. //                                        if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)== Bit_RESET)
  29. //                                                        {
  30. //                                                                //LED 發光
  31. //                                                                GPIO_SetBits(GPIOB,GPIO_Pin_5);
  32. //                                                         }
  33. //                                        else
  34. //                                                        {
  35. //                                                                //LED 熄滅                                 
  36. //                                                                GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  37. //                                                         }
  38.                  }        
  39. }

  40. void RCC_Configuration(void)
  41. {
  42.   SystemInit();

  43.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//這個是必須的,仿真軟件必須的
  44.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
  45.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//端口復用,一定在APB2的時鐘線
  46.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  47.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  48.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  49. }

  50. void GPIO_Configuration(void)
  51. {
  52.   GPIO_InitTypeDef GPIO_InitStructure;
  53.          
  54. //PWM
  55.         GPIO_InitStructure.GPIO_Pin= GPIO_Pin_7;
  56.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  57.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;      //通過PWM控制,端口為復用方式輸出
  58.         GPIO_Init(GPIOA,&GPIO_InitStructure);
  59.         
  60. //LED
  61.         GPIO_InitStructure.GPIO_Pin= GPIO_Pin_5;
  62.         GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  63.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;      
  64.         GPIO_Init(GPIOB,&GPIO_InitStructure);
  65.         
  66. //BUTTON
  67.         GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;
  68.         GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;
  69.         GPIO_Init(GPIOC,&GPIO_InitStructure);
  70. }

  71. void TIM3_Configuration(arr)
  72. {
  73.         TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
  74.         TIM_OCInitTypeDef TIM_OCInitStructure;             //PWM的結構體

  75.         GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//TIM3 復用功能部分映射,可以此找到對應的管腳
  76.         //關于部分映射可以參考“STM32參考手冊”119面
  77.         //定時器初始化
  78.         
  79.         TIM_TimeBaseStruct.TIM_Period=arr;//初值
  80.         TIM_TimeBaseStruct.TIM_Prescaler=2;//預分頻
  81.         //不分頻,在晶振為72MHz的情況下,定時器執行到899后即會溢出,表示計數滿
  82.         TIM_TimeBaseStruct.TIM_ClockDivision=0;
  83.         TIM_TimeBaseStruct.TIM_CounterMode=TIM_CounterMode_Up;//向上
  84.         TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruct);
  85.         

  86.         //pwm初始化
  87.         TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;             //使用模式1
  88.         TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; //使能位
  89.         TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;     //設置輸出極性,一定注意

  90.         
  91.         TIM_OC2Init(TIM3,&TIM_OCInitStructure);
  92.   TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);            //與裝載使能,不會說執行一次后就不執行了
  93.         TIM_Cmd(TIM3,ENABLE);
  94.                  
  95. }
  96. /*PWM不是中斷,所以不需要設置中斷優先級 */
復制代碼

Keil代碼與Proteus8.8仿真下載(注意要是用Proteus8.8這個版本,其他版本可能會出現異常):
protues仿真stm32f103輸出PWM.7z (241.15 KB, 下載次數: 889)


作者: pfdqwp    時間: 2018-12-20 10:32
我的仿真不了,死機,不知哪里沒設置好。
作者: 541板哥    時間: 2018-12-21 14:11
pfdqwp 發表于 2018-12-20 10:32
我的仿真不了,死機,不知哪里沒設置好。

不需要什么特殊的設置啊,是不是軟件的問題,我用的protues8.6(8.6以上才支持仿真32)/win7,64位系統
作者: beamzorg    時間: 2019-1-12 15:21
謝謝分享
作者: chq_yanxue    時間: 2019-1-25 16:33
下載后學習一下
作者: w1179benp    時間: 2019-1-26 10:31
可惜,還在8.4
作者: songzhige    時間: 2019-2-13 14:31
試驗一下
作者: 君不笑    時間: 2019-3-21 10:24
感謝分享 ^_^
作者: isbn20030595    時間: 2019-4-1 16:14
感謝樓主分享
作者: 779101584    時間: 2019-4-16 08:45
謝謝樓主分享。。
作者: tt98    時間: 2019-4-16 09:25
51也能吧!
作者: qq7530315    時間: 2019-5-5 15:33
下載后學習一下,謝謝分享
作者: youqq    時間: 2019-5-6 15:23
謝謝分享,學習了。
作者: riio    時間: 2019-6-16 23:23
感謝分享
作者: YXDZGD5    時間: 2019-10-15 17:36
感謝分享,非常不錯,實用的資料
作者: pcbboy    時間: 2019-11-26 09:13
這個不錯,下載看看。謝謝樓主分享!
作者: longwang    時間: 2020-2-14 10:59
下載,學習一下
作者: longwang    時間: 2020-2-14 11:07
可以仿真,但是波形有點不一樣
作者: shu_007    時間: 2020-3-21 08:18
我的8.8綠色板的,win7 32位,老是閃退,請問各位大俠什么回事?
作者: 123456789lrs    時間: 2020-4-12 11:14
謝謝分享
作者: WJLEEE    時間: 2020-4-12 17:46
樓主大神好,我是PROTEUS萌新,請問元件庫里面找不到SRM32F103R6怎么辦呀
作者: 123456789lrs    時間: 2020-4-16 15:13
不是部分重印象么,怎么是pa7輸出呢
作者: chq_yanxue    時間: 2020-4-27 21:19
好帖子,頂一下

作者: 紫蘇2020    時間: 2020-5-15 09:44
我下載之后為啥解壓總出錯
作者: 我一歲    時間: 2020-5-15 15:26
123456789lrs 發表于 2020-4-16 15:13
不是部分重印象么,怎么是pa7輸出呢

同問  應該是PB5才對啊
作者: cndeusa    時間: 2020-5-21 06:16
感覺Proteus不能仿真STM32的端口重映射功能
作者: 112221hj    時間: 2020-5-21 11:56
不錯不錯

作者: 而非非人非    時間: 2020-5-27 14:42
為什么用KEIL打不開程序啊
作者: 51hei電控200522    時間: 2020-6-8 22:51
stm32 的da可以仿真嗎
作者: xufy    時間: 2020-6-23 13:56
紫蘇2020 發表于 2020-5-15 09:44
我下載之后為啥解壓總出錯

請問下載之后文件里都簡介或者分析書嗎
作者: swustlx86    時間: 2020-6-24 11:57
51黑  有你更精彩
作者: ldd1    時間: 2020-6-30 10:03
樓主,能不能詳細講一下實現功能啊?
作者: myeda    時間: 2021-1-5 15:10
仿真確實很有必要,可以事先看到很多結果,如果直接硬件運行,還需要各種檢測工具,也是不小的開支啊
作者: mick32    時間: 2022-4-5 04:58
Go to PWM Keil dir and copy LY-STM32.hex

Then paste LY-STM32.hex in Proteus working dir

Working OK with Proteus 8.12 sp0 and WIN10 X64
Thank you

LY-STM32.rar

6.67 KB, 下載次數: 6, 下載積分: 黑幣 -5


作者: cdsxd    時間: 2022-4-14 09:09
我的不是Proteus8.8導致仿真結果不正確

作者: wu135    時間: 2022-4-24 11:32
換了幾個版本最后用Proteus8.8才能仿真出波形,其他版本沒有波形
作者: 電工小明    時間: 2022-4-26 21:57
感謝分享,非常不錯,實用的資料
作者: 伊森亨特    時間: 2022-4-27 13:17
你好,請問stm32的晶振和時鐘怎么設置啊
作者: 244235    時間: 2023-6-6 11:15
用8.15的版本仿真沒有PWM波的顯示

作者: long3    時間: 2023-7-21 12:06
不錯呀,可以仿真
作者: lopqol    時間: 2025-4-16 14:33
多謝樓主,正在學習使用!




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1