找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8701|回復(fù): 1
收起左側(cè)

stm最簡單例子-利用固件庫編程比自己寫代碼要快好多

[復(fù)制鏈接]
ID:99624 發(fā)表于 2015-12-27 02:48 | 顯示全部樓層 |閱讀模式
之前用過keil學(xué)習(xí)過8051單片機,用avrstudio學(xué)過atmega16單片機,用IAR學(xué)習(xí)過ZigBee系列芯片CC2430,cc2530.最近公司要用到stm32,之前沒有接觸過arm,覺得他挺復(fù)雜的,尤其是固件庫函數(shù),看上去挺復(fù)雜的,但實際上有過之前的基礎(chǔ),入門很快,利用固件庫編程比自己寫代碼要快好多。頭一次發(fā)現(xiàn),看來學(xué)了那么東西看來還是有些用的,有了之前的基礎(chǔ),后面就越學(xué)越簡單了。從原理圖設(shè)計,到PCB制作,到代碼的編寫,最近兩個月確實學(xué)到了許多。后面把我在調(diào)試板子時自己的調(diào)試程序貼出來,給大家分享。
  #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()函數(shù)在stm32f10x_rcc.c中定義,因此文件組中一定要記得添加改文件,否則會出現(xiàn)函數(shù)維定義的情況
  還有條件編譯的設(shè)置,USE_STDPERIPH_DRIVER,STM32F10X_MD,這兩個函數(shù)一定要定義,否則也會出現(xiàn)錯誤
還有,頭文件路徑也要設(shè)置,否則系統(tǒng)將從默認安裝目錄下尋找相應(yīng)的頭文件,往往會出現(xiàn)重復(fù)定義的錯誤,或者定義有沖突。還有添加頭文件路徑時,對應(yīng)的文件一定要全部填加到,不要漏掉。

回復(fù)

使用道具 舉報

ID:215049 發(fā)表于 2017-6-27 10:54 | 顯示全部樓層
你的是否也忘記加頭文件“stm32f10x_rcc.c”??
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表