Proteus仿真stm32f103r6输出PWM/正弦波

资料下载地址:Proteus仿真stm32f103r6输出PWM/正弦波

一、仿真图

Proteus仿真stm32f103r6输出PWM/正弦波

 

二、程序 

#include "pbdata.h"u16 fre;
void RCC_Configuration(void);
void GPIO_Configuration(void);
void TIM3_Configuration();void  Delay (uint32_t nCount)
{for(; nCount != 0; nCount--);
}int main(void)
{u16 arr=42000;u16 led_dt = arr/2;RCC_Configuration();        //系统时钟初始化GPIO_Configuration();//端口初始化TIM3_Configuration(arr);//定时器和pwm配置 while(1){        TIM_SetCompare2(TIM3,led_dt); //用的是TIM3的通道2,输出PWM         送到相应的寄存器中   //满占空比为900                GPIO_SetBits(GPIOB,GPIO_Pin_5);        //LED 发光Delay(0x2ffff);GPIO_ResetBits(GPIOB,GPIO_Pin_5);//LED 熄灭Delay(0x2ffff);//                                        if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7)== Bit_RESET)
//                                                        {
//                                                                //LED 发光
//                                                                GPIO_SetBits(GPIOB,GPIO_Pin_5);
//                                                         }
//                                        else
//                                                        {
//                                                                //LED 熄灭                                 
//                                                                GPIO_ResetBits(GPIOB,GPIO_Pin_5);
//                                                         }}        
}void RCC_Configuration(void)
{SystemInit();RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//这个是必须的,仿真软件必须的RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//端口复用,一定在APB2的时钟线RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
}void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;//PWMGPIO_InitStructure.GPIO_Pin= GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;      //通过PWM控制,端口为复用方式输出GPIO_Init(GPIOA,&GPIO_InitStructure);//LEDGPIO_InitStructure.GPIO_Pin= GPIO_Pin_5;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;      GPIO_Init(GPIOB,&GPIO_InitStructure);//BUTTONGPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_Init(GPIOC,&GPIO_InitStructure);
}void TIM3_Configuration(arr)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;TIM_OCInitTypeDef TIM_OCInitStructure;             //PWM的结构体GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//TIM3 复用功能部分映射,可以此找到对应的管脚//关于部分映射可以参考“STM32参考手册”119面//定时器初始化TIM_TimeBaseStruct.TIM_Period=arr;//初值TIM_TimeBaseStruct.TIM_Prescaler=2;//预分频//不分频,在晶振为72MHz的情况下,定时器执行到899后即会溢出,表示计数满TIM_TimeBaseStruct.TIM_ClockDivision=0;TIM_TimeBaseStruct.TIM_CounterMode=TIM_CounterMode_Up;//向上TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStruct);//pwm初始化TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;             //使用模式1TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; //使能位TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;     //设置输出极性,一定注意TIM_OC2Init(TIM3,&TIM_OCInitStructure);TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);            //与装载使能,不会说执行一次后就不执行了TIM_Cmd(TIM3,ENABLE);}
/*PWM不是中断,所以不需要设置中断优先级 */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动物脚掌“温度升降”体验:ZL-021大小鼠冷热板测痛仪

ZL-021大小鼠冷热板测痛仪用于评估动物对疼痛的敏感度。通过将小鼠或大鼠放置在温度可调的热板上,记录它们在板上停留的时间来评估它们对不同温度刺激的反应。 优点说明:设备能够明确指示组织损伤情况,同时对动物影响较小,可以反…

学生评教,问卷调查表评价教师统计,python+pandas处理数据

先上一个结果表格 几个关键步骤 1、问卷网站上设置相关题目,条目,最好用评分题目(点击文本选项,但是保存下来的是分值),如图 2、pandas清洗数据,包括unstack,其目的是把所有学生得…

快速了解VR全景拍摄技术运用在旅游景区的优势

豆腐脑加了糖、烤红薯加了勺,就连索菲亚大教堂前都有了“人造月亮”,在这个冬季,“尔滨”把各地游客宠上了天。面对更多的游客无法实地游玩,哈尔滨冰雪世界再添新玩法,借助VR全景拍摄技术对冬季经典冰雪体验项目进行全…

什么是Modbus协议?

Modbus协议是一种在工业自动化领域广泛应用的通信协议,它允许不同设备之间进行可靠的数据交换和控制。该协议最初由Modicon公司于1979年创建,旨在提供一种简单而有效的方法,使PLC(可编程逻辑控制器)和其他自动化设备能…

AI老照片修复-Bringing-Old-Photos-Back-to-Life

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. AI老照片修复原理-…

修改idea或者pycharm或者android studio的快捷键,快速跳转到行尾

ctrl enter这个快捷键是idea默认配置的,就是将光标所在的行切一刀,并且换到下一行。但是在我的开发习惯里面不怎么使用ctrl enter这个快捷键, 反而开发java或者flutter软件需要快速跳转到行尾添加分号 ; ,但是使用end键脱离了我…

ARM 寄存器

文章目录 ARM 寄存器介绍一、未分组寄存器 R0~R7二、分组寄存器 R8~R14三、程序计数寄存器 R15(PC)四、当前程序状态寄存器 R16(CPSR)管理模式(SVC)用户模式(USR) 汇编里的寄存器名称…

YOLOv8-Seg改进:轻量化改进 | MobileNetV3,轻量级骨架首选

🚀🚀🚀本文改进:MobileNetV3的创新点包括:使用自适应瓶颈宽度、借鉴SENet中的Squeeze-and-Excitation机制、引入h-swish激活函数等。 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教…

JVM 元空间、java中的元空间

JVM 元空间 元空间 元空间 原空间(Meta Space) ​ 用于存放类信息、常量、静态变量、JIT即时编译器百年以后的机器代码等数据等。例如:java.lang.Object类的元信息、Integer.MAX_VALUE等常量。 JDK1.6 HotSpot JVM 使用Method Area方法区存…

植物大战僵尸-C语言搭建童年游戏(easyx)

游戏索引 游戏名称&#xff1a;植物大战僵尸 游戏介绍&#xff1a; 本游戏是在B站博主<程序员Rock>的视频指导下完成 想学的更详细的小伙伴可以移步到<程序员Rock>视频 语言项目&#xff1a;完整版植物大战僵尸&#xff01;可能是B站最好的植物大战僵尸教程了&…

Jenkins基础篇--凭据(Credential)管理

什么是凭据 Jenkins的Credentials直译为证书、文凭&#xff0c;我们可以理解为它是钥匙&#xff0c;用来做某些事情的认证。 如Jenkins 和 GitLab交互时&#xff0c;需要添加GitLab的API令牌和登录凭证。 如Jenkins 添加从节点时&#xff0c;需要添加从节点的登录凭证或者Je…

Jenkins基础篇--添加用户和用户权限设置

添加用户 点击系统管理&#xff0c;点击管理用户&#xff0c;然后点击创建用户&#xff08;Create User&#xff09; 用户权限管理 点击系统管理&#xff0c;点击全局安全配置&#xff0c;找到授权策略&#xff0c;选择安全矩阵&#xff0c;配置好用户权限后&#xff0c;点击…

Redis内存分析工具

Redis内存分析工具RDR 了解一下RDR的优势 1&#xff0c;首先RDR工具是图形化界面&#xff0c;能非常直观的就能看到内存主键分布 2&#xff0c;可以快速分析 Redis 内存中那个 Key 值占用的内存最大 启动 ./rdr-linux show -p 8080 /usr/local/redis-5.0.3/data/dump.rdb st…

线索系统性能优化实践

引言 在京东家居事业部&#xff0c;线索CRM系统扮演着至关重要的角色&#xff0c;它作为构建家居场景核心解决方案集的首要环节&#xff0c;肩负着获客和拓展业务的重要使命。然而&#xff0c;随着业务的不断扩张和市场需求的日益增长&#xff0c;系统原有的架构开始显露出诸多…

使用图形化界面工具DataGrip

目录 添加数据源 展示所有数据库 创建数据库 创建表 修改表结构 在DataGrip中执行SQL语句 &#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&am…

构建基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等)的Nginx1.24.0的RPM包

本文适用&#xff1a;rhel9系列&#xff0c;或同类系统(CentOS9,AlmaLinux9,RockyLinux9等) 文档形成时期&#xff1a;2023年 因系统版本不同&#xff0c;构建部署应略有差异&#xff0c;但本文未做细分&#xff0c;对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…

使用Flash_Download_Tool下载PlatformIO生成的bin程序到ESP32

使用Flash_Download_Tool下载PlatformIO生成的bin程序到ESP32 来源 当我们没有PlatformIO环境时&#xff0c;还要下载PlatformIO生成的程序时&#xff0c;可以使用Flash_Download_Tool工具下载。 说明 使用PlatformIO时&#xff0c;用cmd终端命令下载程序pio run -v -t upl…

2023 IoTDB Summit:天谋科技高级开发工程师张金瑞《筑其形:如何轻松搞定 IoTDB 数据建模》...

12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…

CSS中用border画三角形等图形

问题背景 最近在做一个官网项目的时候&#xff0c;UI小姐姐设计了一些特殊图形&#xff0c;例如三角形&#xff0c;虽然element-ui是带有相应模板的&#xff0c;但是设计的和模版的不一样&#xff0c;因此研究了一下。 三角形怎么画 三角形实际上是border的产物 我们正常使用…

SpringBoot 把PageHelper分页信息返回给前端

第1步&#xff1a;定义线程容器收纳HttpHeaders和HttpStatus import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus;public class ResponseUtils {private static ThreadLocal<HttpHeaders> ThreadLocalHeaders new InheritableT…