一、建立基于库函数的工程
在工程文件夹中新建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,这样当断电后,再次打开,程序才不会消失。