找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7927|回复: 1
打印 上一主题 下一主题
收起左侧

stm最简单例子-利用固件库编程比自己写代码要快好多

[复制链接]
跳转到指定楼层
楼主
ID:99624 发表于 2015-12-27 02:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前用过keil学习过8051单片机,用avrstudio学过atmega16单片机,用IAR学习过ZigBee系列芯片CC2430,cc2530.最近公司要用到stm32,之前没有接触过arm,觉得他挺复杂的,尤其是固件库函数,看上去挺复杂的,但实际上有过之前的基础,入门很快,利用固件库编程比自己写代码要快好多。头一次发现,看来学了那么东西看来还是有些用的,有了之前的基础,后面就越学越简单了。从原理图设计,到PCB制作,到代码的编写,最近两个月确实学到了许多。后面把我在调试板子时自己的调试程序贴出来,给大家分享。
  #include"stm32f10x_it.h"
  #include "stm32f10x_conf.h"
  voidRCC_Configuration(void);  //时钟配置
  GPIO_InitTypeDef GPIO_InitStructure;
int main(void)
{
   int i;
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|
                          RCC_APB2Periph_GPIOE, ENABLE); //使能各部分时钟
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
   while (1)
  {
   
  GPIO_SetBits(GPIOA,GPIO_Pin_11) ;
  GPIO_SetBits(GPIOA,GPIO_Pin_15) ;
  for(i=0;i<1000000;i++);

  GPIO_ResetBits(GPIOA,GPIO_Pin_11);
  GPIO_ResetBits(GPIOA,GPIO_Pin_15);
  for(i=0;i<1000000;i++);
  }
}
void RCC_Configuration(void)
{  

  SystemInit();
}
  注,arm在给引脚初始化时,一定要先定义时钟,否则定义无效,这一点要特别注意。
RCC_APB2PeriphClockCmd()函数在stm32f10x_rcc.c中定义,因此文件组中一定要记得添加改文件,否则会出现函数维定义的情况
  还有条件编译的设置,USE_STDPERIPH_DRIVER,STM32F10X_MD,这两个函数一定要定义,否则也会出现错误
还有,头文件路径也要设置,否则系统将从默认安装目录下寻找相应的头文件,往往会出现重复定义的错误,或者定义有冲突。还有添加头文件路径时,对应的文件一定要全部填加到,不要漏掉。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:215049 发表于 2017-6-27 10:54 | 只看该作者
你的是否也忘记加头文件“stm32f10x_rcc.c”??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表