日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32单片机c语言入门,STM32入门教程1,初学者入门,从零开始,使用keil建立一个简单的ST...

發布時間:2024/1/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32单片机c语言入门,STM32入门教程1,初学者入门,从零开始,使用keil建立一个简单的ST... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文講述的是如何從零開始,使用keil建立一個簡單的STM32的工程,并閃爍LED燈,給小白看。

第零步,當然首先你得有一個STM32的板子,其IO口上接了一個LED。。。

第一步,建立一個文件夾0.0

第二步,打開keil,建立工程

在彈出來的對話框中選擇你所用的STM32的芯片。

在接下來彈出來的對話框中選擇是,這樣keil就幫我們建立好了啟動文件。

第三步,新建一個main.c文件,并添加到工程中。

點擊New按鈕,建立一個文本文件。

在建立的文本文件中輸入C中的main函數

點擊保存

保存后,將文件添加到工程中

第四步,點擊編譯

可以看到keil有報錯

錯誤信息為:沒有定義的符號SystemInit,這是因為在啟動文件中有調用SystemInit函數,但是我們沒有定義它,如下圖:

暫時不用理會上述啟動文件中匯編的含義,只需在main.c中添加該函數即可消除該錯誤。

修改后再編譯,程序沒有報錯了。至此,一個STM32的工程就建立完成了。

第五步,將下面的代碼復制粘貼

下面一段是對代碼的簡單講解,可不用太深入。

/

STM32 GPIO輸出高低電平的完整流程如下:

配置時鐘→配置IO口→IO口輸出高地電平

1,STM32的時鐘是可以PLL的。但是我這里為了簡化操作,就不配置,只使用默認的時鐘----內部8MZH振蕩器。

2,硬件上,我的LED燈是接到PA8。那么,我要怎么控制PA8呢?

STM32不能像單片機一樣,一上來就能操作IO口。要操作STM32的IO口,首先要配置IO口。

void LEDInit(void)

{

RCC->APB2ENR|=1<<2;

GPIOA->CRH&=0XFFFFFFF0;

GPIOA->CRH|=0X00000003;

}

其中RCC->APB2ENR|=1<<2;是使能GPIOA的時鐘。若是要使能GPIOB的時鐘則是RCC->APB2ENR|=1<<3;其他的以此類推。

GPIOA->CRH&=0XFFFFFFF0;

GPIOA->CRH|=0X00000003;

是配置PA8為推挽輸出,50MHZ。

若是要設置PA9則是:

GPIOA->CRH&=0XFFFFFF0F;

GPIOA->CRH|=0X00000030;

其他的以此類推,若是PA0~PA7則將CRH改為CRL就行。

若是要配置其他GPIO口,將GPIOA改成GPIOB,GPIOC。。。就行。,

3,我們知道51單片機是可以單獨控制每個IO口的,STM32也可以做到,這個機制叫做Bit-Bond。

參考《Cortex-M3權威指南》可知道,只要找到PA8輸出寄存器在Bit-Bond的地址,即可操作PA8的輸出。地址的計算方法如下圖:

《Cortex-M3權威指南》還給出了C語言宏定義的方法,我們可以直接使用。

/

將上述代碼輸入后,點開配置選項,配置如下:

勾上 Create HEX File

選擇J-Link下載工具

再次build,然后下載就大功告成啦。

綜上可以看出,若是不配置STM32的PLL,那么相對于51單片機,STM32閃爍LED燈只不過多了一個步驟----配置GPIO口為輸出而已。

總結

以上是生活随笔為你收集整理的stm32单片机c语言入门,STM32入门教程1,初学者入门,从零开始,使用keil建立一个简单的ST...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。