赞
踩
选择r6的原因是新版proteus中自带r6的元件库,如果选择ZET6还需要另外在proteus安装库文件,具体可以去proteus官网搜索STM32库
#include "stm32f10x.h" #include "led.h" #include "stdio.h" void Delay(u16 t) { u32 i; while(t--) for(i=1;i<1000;i++); } int main(void) { int i; LED_Init();//初始化LED while(1) { GPIO_ResetBits(GPIOC,GPIO_Pin_0);//让PC_0口输出为低电平,从而使灯0亮 Delay(200);//延时500ms GPIO_SetBits(GPIOC,GPIO_Pin_0);//灯0灭 GPIO_ResetBits(GPIOC,GPIO_Pin_1);//灯1亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_1);//灯1灭 GPIO_ResetBits(GPIOC,GPIO_Pin_2);//灯2亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_2);//灯2灭 GPIO_ResetBits(GPIOC,GPIO_Pin_3);//灯3亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_3);//灯3灭 GPIO_ResetBits(GPIOC,GPIO_Pin_4);//灯4亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_4);//灯4灭 GPIO_ResetBits(GPIOC,GPIO_Pin_5);//灯5亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_5);//灯5灭 GPIO_ResetBits(GPIOC,GPIO_Pin_6);//灯6亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_6);//灯6灭 GPIO_ResetBits(GPIOC,GPIO_Pin_7);//灯7亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_7);//灯7灭 Delay(200); GPIO_ResetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1);//灯0、1亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1);//灯0、1灭 GPIO_ResetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_3);//灯2、3亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_3);//灯2、3灭 GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);//灯4、5亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);//灯4、5灭 GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);//灯6、7亮 Delay(200); GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);//灯6、7灭 for(i=0;i<=3;i++) { GPIO_ResetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);//灯0、1、2、3亮 Delay(100); GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);//灯0、1、2、3灭 GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);//灯4、5、6、7亮 Delay(100); GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);//灯4、5、6、7灭 } } }
实现功能:能使得led灯先一个一个闪烁,后面两个一起依次闪烁,最后四个一起闪烁。
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_0 | GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
}
目的:初始化IO口,使能IO口时钟,调整IO口输出频率,设置IO口输出方式,初始化IO口输出方式。
运行前记得点击魔法棒
选择output
选择创建HEX文件
然后运行,这样就可以生成proteus可以执行的文件。
将所圈的地方改为72MHZ
STM32程序开发相对51来说更加的方便,很多程序在商家层面就将程序封装好了,很多只需要调用即可,通过这次程序设计,我收益颇多,感觉32的学习也还行,没有想象中的那么困难。
因为我之前就安装好了,具体过程可以搜索阿虚同学,找到计算机常用软件,软件管家会告诉你安装过程
直接上链接: 点击我
阿虚同学还有更多丰富的资料。大家也可以多多去看看
在文件里选择新的,然后选择新的项目
同样在文件里选择新的,选择原理图
同样咋文件里选择新的,选择库,在选择原理图库
步骤如下:
元件在components中,相隔的线可以用直尺选项
作线。
1、先将所有元件找到并放入图中,最后连线。
2、一开始可以不用写元件号,最后一步添加,步骤如下
选择工具----->选择标注----->选择原理图标注
可以快速一件更新
3、封装可以将所有图画好后进行封装。
选择需要编译的原理图,然后点击run
总的来说AD绘制原理图比较费时间,STM32最小系统板的原理图网上资源很多,但是具体原理还需要深入研究,还有PCB的绘制,这个比较费眼睛,但是学习这个过程充满了乐趣,当你编译成功的那一刻,真正感受到了喜悦,但是对于原理图,我还得线下需要花一些更多的时间去学习研究具体原理。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。