深圳市建设网站黑河做网站哪家好

web/2025/9/28 3:49:51/文章来源:
深圳市建设网站,黑河做网站哪家好,中企做的网站,奉贤区网站建设本文涉及到定时器和串口的知识#xff0c;详细内容可见博主STM32速成笔记专栏。 文章目录 一、TB6612简介二、TB6612使用方法2.1 TB6612引脚连接2.2 控制逻辑2.3 电机调速 三、实战项目3.1 项目简介3.2 初始化GPIO3.3 PWM初始化3.3 电机控制程序3.4 串口接收处理函数 一、TB66… 本文涉及到定时器和串口的知识详细内容可见博主STM32速成笔记专栏。 文章目录 一、TB6612简介二、TB6612使用方法2.1 TB6612引脚连接2.2 控制逻辑2.3 电机调速 三、实战项目3.1 项目简介3.2 初始化GPIO3.3 PWM初始化3.3 电机控制程序3.4 串口接收处理函数 一、TB6612简介 TB6612FNG是东芝半导体的一款驱动电机的IC。一个TB6612FNG可以驱动两个电机每一个驱动都有两个逻辑输入引脚一个输出引脚和一个PWM引脚。可以通过给两个逻辑输入引脚不同的电平来控制电机的运行状态通过PWM输入引脚实现电机调速。TB6612FNG还具有以下特点 电源电压最大可到15V输出电流最大可达3.2A内置热停机电路和低压检测电路有正转反转短制动和停止四种模式 二、TB6612使用方法 2.1 TB6612引脚连接 引脚连接PWMAA通道的PWM输入AIN2A通道逻辑输入2引脚AIN1A通道逻辑输入1引脚STBY待机引脚接低电平处于待机模式接高电平开始工作BIN1B通道逻辑输入1引脚BIN2B通道逻辑输入2引脚PWMBB通道PWM输入引脚GND地VM电源输入正极最大接15VVCC逻辑电源正极接3.3VAO1A通道输出1引脚AO2A通道输出2引脚BO2B通道输出2引脚BO1B通道输出1引脚 使用时VM接电机电源的正极GND接电机电源的负极。IN1和IN2接逻辑输入PWM接PWM输出引脚。O1和O2接电机的正负极。 2.2 控制逻辑 IN1和IN2的高低电平状态对应不同的电机运行状态二者的对应关系如下 IN1001IN2010电机运行状态停止正转反转 上述的正反转是AO1接电机正极AO2接电机负极的对应关系。 2.3 电机调速 电机调速的远离比较简单只需要给TB6612FNG的PWM输入引脚输入10KHz的PWM波。调节占空比即可调节转速。需要注意的是如果PWM配置的极性是低电平那么设置占空比时的值越大电机转速越低。相反如果PWM配置的极性是高电平那么设置占空比时的值越大电机转速越高。 三、实战项目 3.1 项目简介 本项目比较简单使用TB6612驱动一个12V减速电机。利用串口发送占空比实现电机的调速。 3.2 初始化GPIO 初始化GPIO完成的工作是初始化逻辑控制引脚程序如下 /***函数名称Drv_MotorGpio_Init*函数功能初始化Motor的GPIO*输入参数无*返回值无*备 注这里只初始化了逻辑控制IOPWM的IO在定时器配置PWM时初始化**/ void Drv_MotorGpio_Init (void) {GPIO_InitTypeDef GPIO_InitStructure; // 定义结构体// 开启时钟RCC_APB2PeriphClockCmd(MOTOR_GPIO_TIM,ENABLE);// 配置结构体GPIO_InitStructure.GPIO_Pin MOTOR_GPIO_PIN;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP; // 推挽式输出GPIO_Init(MOTOR_GPIO, GPIO_InitStructure); }宏定义如下 // 电机逻辑控制GPIO #define MOTOR_GPIO_TIM RCC_APB2Periph_GPIOC #define MOTOR_GPIO GPIOC #define MOTOR_GPIO_PIN GPIO_Pin_7 | GPIO_Pin_83.3 PWM初始化 PWM初始化程序如下 /***函数名称TIM2_CH1_PWM_Init*函数功能初始化定时器2的PWM通道1*输入参数per自动重装载值psc预分频系数*返回值无*备 注无**/ void TIM2_CH1_PWM_Init (u16 per,u16 psc) {// 结构体定义TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_OCInitTypeDef TIM_OCInitStructure;GPIO_InitTypeDef GPIO_InitStructure;// 开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);// 初始化GPIOGPIO_InitStructure.GPIO_Pin GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP; // 复用推挽输出GPIO_Init(GPIOA,GPIO_InitStructure);// 初始化定时器参数TIM_TimeBaseInitStructure.TIM_Period per; // 自动装载值TIM_TimeBaseInitStructure.TIM_Prescaler psc; // 分频系数TIM_TimeBaseInitStructure.TIM_ClockDivision TIM_CKD_DIV1;TIM_TimeBaseInitStructure.TIM_CounterMode TIM_CounterMode_Up; // 设置向上计数模式TIM_TimeBaseInit(TIM2,TIM_TimeBaseInitStructure); // 初始化PWM参数TIM_OCInitStructure.TIM_OCMode TIM_OCMode_PWM1; // 比较输出模式TIM_OCInitStructure.TIM_OCPolarity TIM_OCPolarity_High; // 输出极性TIM_OCInitStructure.TIM_OutputState TIM_OutputState_Enable; // 输出使能TIM_OC1Init(TIM2,TIM_OCInitStructure); // 输出比较通道1初始化TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable); // 使能TIMx在 CCR1 上的预装载寄存器TIM_ARRPreloadConfig(TIM2,ENABLE); // 使能预装载寄存器TIM_Cmd(TIM2,ENABLE); // 使能定时器 }初始化时配置如下配置为10KHz TIM2_CH1_PWM_Init(1000,71); // 初始化PWM3.3 电机控制程序 电机正反转和停止控制程序如下 /***函数名称Med_Motor_Go*函数功能电机正转*输入参数无*返回值无*备 注无**/ void Med_Motor_Go (void) {MOTOR_IN1 1;MOTOR_IN2 0; } /***函数名称Med_Motor_Stop*函数功能电机停转*输入参数无*返回值无*备 注无**/ void Med_Motor_Stop (void) {MOTOR_IN1 0;MOTOR_IN2 0; } /***函数名称Med_Motor_Reverse*函数功能电机反转*输入参数无*返回值无*备 注无**/ void Med_Motor_Reverse (void) {MOTOR_IN1 0;MOTOR_IN2 1; } 宏定义如下 // 电机逻辑控制引脚 #define MOTOR_IN1 PCout(7) #define MOTOR_IN2 PCout(8)3.4 串口接收处理函数 串口需要根据接收到的占空比来配置输出PWM的占空比配置占空比使用的库函数是 void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1)串口只支持输入大于100小于1000的占空比串口接收处理程序如下 /***函数名称USART1_IRQHandler*函数功能USART1中断服务函数*输入参数无*返回值无*备 注无**/ u32 gReceCount 0; // 接收计数变量 u32 gClearCount 0; // 清空接收数组计数变量 u8 gReceFifo[1500]; // 接收数组 u8 gReceEndFlag 0; // 接收完成标志位 void USART1_IRQHandler(void) {if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) //接收到一个字节 {gReceFifo[gReceCount] USART_ReceiveData(USART1);}else if(USART_GetITStatus(USART1,USART_IT_IDLE) ! RESET) //接收到一帧数据{USART1-SR; // 先读SRUSART1-DR; // 再读DRgReceEndFlag 1; // 接收完成标志置1 } } /***函数名称Uart_Rece_Pares*函数功能解析串口接收内容*输入参数无*返回值无*备 注无**/ void Uart_Rece_Pares(void) // 串口接收内容解析函数 {u16 pwmDuty 0; // 接收串口发送来的占空比if (gReceEndFlag 1) // 如果接收完成{// 解析接收内容pwmDuty (gReceFifo[0] - 48) * 100;pwmDuty pwmDuty (gReceFifo[1] - 48) * 10;pwmDuty pwmDuty (gReceFifo[2] - 48);if (pwmDuty 100){pwmDuty 100;}if (pwmDuty 1000){pwmDuty 1000;}printf (duty%d\r\n,pwmDuty);TIM_SetCompare1(TIM2,pwmDuty);// 清空接收数组for (gClearCount 0;gClearCount gReceCount;gClearCount ){gReceFifo[gClearCount] ;}gReceEndFlag 0; // 清除接收完成标志位gReceCount 0; // 清零接收计数变量} }

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

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

相关文章

网页.网站.主页.网址.域名有什么联系泰安建设网站

C的一个指针占内存几个字节? 结论: 取决于是64位编译模式还是32位编译模式(注意,和机器位数没有直接关系) 在64位编译模式下,指针的占用内存大小是8字节在32位编译模式下,指针占用内存大小是4字…

电商网站运营流程wordpress主题支持菜单

三目运算符是JavaScript中常用的一种条件语句,也称为条件运算符。它由问号(?)和冒号(:)组成,用于根据条件的真假返回不同的值。在本篇文章中,我将详细介绍三目运算符的语法、用法和实例&#x…

如何建设网站知乎wordpress 相册模式

总览 我们将讨论的主题包括使用Spring Batch进行批处理的基本概念,以及如何将数据从CSV导入数据库。 0 – Spring Batch CSV处理示例应用程序 我们正在构建一个应用程序,该应用程序演示Spring Batch处理CSV文件的基础。 我们的演示应用程序将允许我们处…

网站怎么优化排名的方法搜狗识图

大数据治理:数字时代的关键密码 在信息技术飞速发展的今天,数字化浪潮席卷全球,深刻地改变着我们的生活和工作方式。数据,作为数字化时代的核心资产,正以前所未有的速度增长和积累。据国际数据公司(IDC&am…

西安找公司建网站wordpress网站文章排版插件

问题与解决方案 在使用Appium进行iOS自动化测试时,可能会遇到各种问题。 以下是一些常见的问题及其解决方案: 无法启动inspector问题 最新版本的Appium已经将内置的inspector独立了出去,需要单独安装inspector进行调试。确保inspector对应…

门户网站建设模式包括网站群和商城手机网站建设多少钱

实现效果如下 类似 推箱子小游戏 的变种 C/C版本 BFS最短路径 黑色代表墙壁 不能越过 蓝色代表HOME点 灰色代表要找的小箱子 绿色代表路径 最终目标是将灰色的小箱子移动到蓝色的HOME点 需要两次搜索 第一次是 出发点到灰色小箱子 第二次是灰色小箱子到蓝色HOME点 BF…

建设代练网站简述网站的推广策略

Time Limit: 10 second Memory Limit: 2 MB 问题描述 同一平面内有n(n≤500)条直线,已知其中p(p≥2)条直线相交与同一点,则这n条直线最多能将平面分割成多少个不同的区域? Input 两个整数n&am…

高端型网站建设邯郸wap网站建设报价

假期第二篇,对于基础的知识点,我感觉自己还是很薄弱的。 趁着假期,再去复习一遍 之前已经记录了一篇【vue3基础知识点-computed和watch】 今天在学习的过程中发现,之前记录的这一篇果然是很基础的,很多东西都讲的不够…

可以随意建国际商城的网站吗苏州天狮建设监理有限公司网站

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

国内论坛网站有哪些网站注册公司

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径): 1、导出数据和表结构: mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql #/usr/local/mysql/bin/mysqldump -uroot -p abc > abc.sql 敲…

淄博桓台网站建设公司展示型的网站用

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

网站没有ftp 怎么推广会计证初级报考时间2023年报名

C11是由C标准委员会指定的语言规范。相比于C98/03,C11则带来了数量可观的变化,其中包含了约140 个新特性,以及对C03标准中约600个缺陷的修正,C11能更好地用于系统开发和库开发、语法更加泛华和简单化、更加稳定和安全,…

商城网站建设解决方案定西市网站建设企业

Oculus现在已向开发者公布了如何使用自己的设备Camera,本系列课程就来手把手地告诉你如何在Unity中使用这个特性。 第一步,既然用的是Quest的特性,那就需要先引入Quest的Unity开发SDK。并且完成基本的VR开发项目设置。 新建Unity项目后,在编辑器界面先点击Window,打开资…

网站seo关键字优化公众号视频网站怎么做

僵尸动画合集,包括成对攻击/抓取、各种移动方式、爬行、击中反应、死亡动画等。 生产说明 动画总数:99(包括22个位置变化) 配对动画:36 攻击次数:6次 爬网:9 命中反应:6 空转:14 行程2 跑步次数:9次 短跑:2 匝数:3 步行次数:12次 免责声明 任何游戏玩法蓝图都不包…

网站建设市场分析做电力 公司网站

学习需要,总结一些常用优化器。 目录 前言SGD:随机梯度下降BGD:批量梯度下降MBGD:小批量梯度下降MomentumAdaGradRMSpropAdam: Adaptive Moment EstimationAdamW参考文章 前言 优化器的本质是使用不同的策略进行参数更新。常用的…

网站开发设计流程深圳市住建局官网

1、Kafka是何如做到高性能的? a、消息批处理减少网络通信开销,提升系统吞吐能力(先攒一波,消息以“批”为单位进行处理) 生产端:无论是同步发送还是异步发送,Kafka都不会立即就把这条消息发送出…

加强网站建设说明报告范文Wordpress二次开发多少钱

目录 前言 一、问题的出现? 二、一体化架构中的慢请求排查如何做 三、分布式 Trace原理 四、如何来做分布式 Trace 前言 在分布式服务架构下,一个 Web 请求从网关流入,有可能会调用多个服务对请求进行处理,拿到最终结果。这个…

闸北做网站网页代理app

1.随意创建一个类,他都有UCLASS()。GENERATED_BODY()这样的默认的宏。 UCLASS() 告知虚幻引擎生成类的反射数据。类必须派生自UObject. (告诉引擎我是从远古大帝UObject中,继承而来,我们是一家人,只是我进化了其他功能…

有什么软件可以做网站国内室内设计师

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不…

专业网站运营托管网站ui设计例子

你想要实现一个JavaScript函数,用于根据时间段过滤搜索结果吗?可以尝试以下的示例代码: // 假设这是你的数据 const data [{ id: 1, name: Alice, timestamp: 1622382000000 }, // 2021-05-30 12:00:00 UTC{ id: 2, name: Bob, timestamp: …