热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

stm32智能小车之路之小车启动

首先,安装完小车后最激动的还是想让他跑动,那么就开始吧。写个简单的程序测试下电机是否正常。打开keil软件新建一个工程,具体简历keil工程不会的请百度,或者call我,我有简历Keil

       首先,安装完小车后最激动的还是想让他跑动,那么就开始吧。写个简单的程序测试下电机是否正常。打开keil软件新建一个工程,具体简历keil工程不会的请百度,或者call我,我有简历Keil工程的文档,保证你会的。

      第一初始化管脚,来进行控制电机,输出高低电平,方可让电机转动。

/*******************************************************************************
* 函数名字 : GPIO_Configuration(void)
* 描述 : 初始化PE7~PE8为输出口.并使能这两个口的时钟
Motor(电机输出引脚) IO初始化
* 输入 : 无
* 输出 : 无
* 返回值 : 无
*******************************************************************************/
void GPIO_Configuration(void)
{
//PE.7~PE.8 小车后轮控制引脚
//PE.9!PE.10风扇控制引脚

GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); //使能PE端口时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;//Motor-->PE.7 ... Motor-->PE.10 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
GPIO_Init(GPIOE, &GPIO_InitStructure); //根据设定参数初始化GPIOE
GPIO_ResetBits(GPIOE,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10); //PE.7.....PE10 输出低电平

}
        带代码中都做了详细的介绍,我就不过多的介绍了。不会的可以问我。主要是管脚的配置,都是直接调用的库 函数,这可比51简单多了,不用直接和寄存器打交道,直接和库函数交流就行,太方便了。

     主函数里面直接初始化下管脚就行:

    

GPIO_Configuration(void);
int main(void)
{
   while(1);
}

ok!一切打工高成,用J-Link或者通过串口下到核心板中去,连接上线,就ok了。

关于连线问题,这个非常重要,我当初就是没有将线接对,导致高了半天,电机也不转,我用的电机驱动模块是L198N的。


贴上电路原理图:


         相信大家都能看懂,不懂的看看模电、数电稍微懂点电路常识应该都懂吧。嘿嘿……

        可以看到小车跑的很快,速度应该很快的。不过不是我们想要的效果,下一篇介绍,怎样控制小车的速度……

电机驱动模块注意不要接反了,容易烧坏,我就烧坏了一个大哭大哭

       上面接线的时候注意电机驱动模块使能端的跳线帽不要拿下来,否则不起作用,下一篇在调节小车速度的时候会将跳线帽拿下来,然后接根线进行控制速度,及PWM调速法。

      怎么样,不难吧……成功是属于那些勇于追逐。永不放弃的人的。加油……

       



推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
author-avatar
mobiledu2502882465
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有