实验室小车学习使用记录

news/2024/11/7 22:23:49/

一、建立基于库函数的工程

在工程文件夹中新建Library文件夹

打开固件库的文件夹,打开Libraries,

主函数main.c中的程序:

#include "stm32f10x.h"                  // Device header
#include "delay.h"
/*开关1:OFF,开关2:ON,才能使用TTL下载程序。
开关1、2都是OFF,掉电后,程序才能保存。*/
int main(void)
{//开始时钟外设RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitTypeDef GPIO_InitStructure_B;GPIO_InitStructure_B.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure_B.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_14;GPIO_InitStructure_B.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure_B);GPIO_InitTypeDef GPIO_InitStructure_E;GPIO_InitStructure_E.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure_E.GPIO_Pin=GPIO_Pin_14|GPIO_Pin_15;GPIO_InitStructure_E.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStructure_E);GPIO_InitTypeDef GPIO_InitStructure_D;GPIO_InitStructure_D.GPIO_Mode=GPIO_Mode_Out_OD;//低电平小车车灯点亮,使用开漏模式GPIO_InitStructure_D.GPIO_Pin=GPIO_Pin_1;GPIO_InitStructure_D.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStructure_D);//车灯需要的模式和车轮需要的模式不一样,再定义一个结构体GPIO_InitTypeDef GPIO_InitStructure_D2;GPIO_InitStructure_D2.GPIO_Mode=GPIO_Mode_Out_PP;//驱动小车,使用推挽输出模式GPIO_InitStructure_D2.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_12|GPIO_Pin_13;GPIO_InitStructure_D2.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOD,&GPIO_InitStructure_D2);GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_RESET);//写出低电平,低电平小车车灯点亮Delay_ms(500);GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_SET);//写出高电平Delay_ms(1500);GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_RESET);//写出低电平,低电平小车车灯点亮Delay_ms(500);GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_SET);//写出高电平Delay_ms(1500);GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_RESET);//写出低电平,低电平小车车灯点亮Delay_ms(500);GPIO_WriteBit(GPIOD,GPIO_Pin_1,Bit_SET);//写出高电平Delay_ms(1500);//PE14 轮子控制GPIO_WriteBit(GPIOD,GPIO_Pin_3,Bit_SET);//控制外接电源,给左轮供电GPIO_WriteBit(GPIOD,GPIO_Pin_2,Bit_SET);//控制外接电源,给右轮供电GPIO_WriteBit(GPIOD,GPIO_Pin_12,Bit_SET);//SV1,PWM 控制速度GPIO_WriteBit(GPIOD,GPIO_Pin_13,Bit_SET);//SV2,PWM 控制速度GPIO_WriteBit(GPIOE,GPIO_Pin_14,Bit_SET);//左轮前转GPIO_WriteBit(GPIOE,GPIO_Pin_15,Bit_RESET);//左轮刹车,低电平小车正常转动,默认低电平。GPIO_WriteBit(GPIOB,GPIO_Pin_13,Bit_RESET);//右轮前转。GPIO_WriteBit(GPIOB,GPIO_Pin_14,Bit_RESET);//右轮刹车,低电平小车正常转动,默认低电平。while(1){}
}

执行这个程序,车灯闪烁三次,然后向前运行。

下载程序

注意开关1:OFF,同时开关2:ON,才能使用TTL下载程序。

下载后两个开关都是OFF,这样当断电后,再次打开,程序才不会消失。


http://www.ppmy.cn/news/1545177.html

相关文章

react->Antd->Table调整checkbox默认样式

checkbox默认不展示,hover此行时,出现checkbox,选中后不消失: hover前,设置透明边框; hover时,checkbox出现 选中后 代码块: .ant-checkbox {.ant-checkbox-inner {border: transparent;}}.ant…

2024年三个月自学网络安全(黑客技术)进阶手册。

🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 前言 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、…

用环形数组实现队列(多种高级方法,由浅入深)

同普通数组实现的队列相比,普通数组的头结点和尾节点都是固定的,在进行移除的时候如果移除了一个节点,后面所有节点都需要进行移除操作,需要的时间复杂度更高 在环形数组中,确定了头尾指针的环形数组很好地解决了这一…

js下载excel示例demo

<Buttontype{"primary"}key"out"onClick{async ()>{const ExportJsonExcel require("js-export-excel");const datas selectedRowsState //确保勾到的数据是一个列表&#xff0c;列表中每个值是字典const option {};const dataTable […

私有化视频平台EasyCVR海康大华宇视视频平台视频诊断技术是如何实时监测视频质量的?

在现代视频监控系统中&#xff0c;确保视频流的质量和稳定性至关重要。随着技术的进步&#xff0c;视频诊断技术已经成为实时监测视频质量的关键工具。这种技术通过智能分析算法对视频流进行实时评估和处理&#xff0c;能够自动识别视频中的各种质量问题&#xff0c;并给出相应…

stable diffusion图生图

本节内容&#xff0c;给大家带来的是stable diffusion的图生图课程&#xff0c;我们在midjourney的课程中有学习过midjourney的图生图功能&#xff0c;即使用垫图的方式来引导AI绘制图片。图生图是AI绘图程序一个非常重要的功能&#xff0c;stable diffusion同样提供了类似的功…

MYSQL作业五

1.触发器 准备工作 作业 建立触发器&#xff0c;订单表中增加订单数量后&#xff0c;商品表商品数量同步减少对应的商品订单的数量&#xff0c;并测试 建立触发器&#xff0c;实现功能&#xff1a;客户取消订单&#xff0c;恢复商品表对应商品的数量 建立触发器&#xff0…

JAVA日期加减运算 JsonObject 转换对象List

1.用java.util.Calender来实现 Calendar calendarCalendar.getInstance(); calendar.setTime(new Date());System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)1);//让日期加1 Sy…