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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

在stm32上使用Arduino IDE(神舟I号为例)

發布時間:2023/12/18 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在stm32上使用Arduino IDE(神舟I号为例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原址:https://blog.csdn.net/alanzjl/article/details/43232601 借鑒一下,以備后用

Arduino IDE是一種很方便的開發環境,通過把底層代碼函數化,做到讓使用者開發軟件不需要太多了解底層控制,縮短了代碼,大大提升了開發效率。而且Arduino基于C/C++,其語言、開發環境都很容易理解,是初學者的一個不錯選擇。但是,Arduino出品的開發板芯片比較古老,計算能力比較低下,較為復雜的運算實現困難。。因此把Arduino環境用在ST意法半導體公司的STM32系列上會有不錯的效果。現在網絡上已經有Arduino for STM32的文章了,不過都是針對自家做的板子所寫,不支持其他板子,這篇文章講的方法適用性較廣,我個人使用的是國產神舟I號開發板,板載STM32F103RB,目前已知此方法適用于STM32F103C8x、STM32F103CBx、STM32F103Rxx 芯片。

下面進入正文。

詳細頁面:http://alanzjl.sinaapp.com/2015/02/arduino_in_stm32/

一、軟件準備。

1、Arduino最新版,現在好像是1.5.8 BETA,我用的是1.6.0,忘了從哪里下到的了現在貌似找不到了,不過1.5.x也可以。

下載地址:http://www.arduino.cc/en/Main/Software

我的板子:

2、STM32 master文件,下載解壓之后,把文件夾名改成Arduino_STM32,拷貝到My Documents/Arduino/hardware下,如果hardware文件夾不存在的話就新建一個。


3、安裝STM32驅動,不安裝的話com口識別不出來,win7/8應該都可以在線自動安裝,如果還是不行的話就百度搜一下驅動程序吧。

4、打開Arduino IDE,選擇合適的板子,我選的是下圖這個。


選擇好COM口,用的是哪個COM口在控制面板-設備管理器里可以看到(如果看不到就說明驅動程序沒裝好)。另:連接STM32和電腦的時候一定注意STM32上用的是哪個接口!!比如我的這塊神舟I,有兩個miniUSB口,其中有一個是USB轉串口的,那么需要連的就是這個,別連錯了!!連錯了COM口也不會出現。(如果開發板不是自帶USB轉串口芯片的,就要自備這塊芯片,從串口連接)




二、軟件準備完了,下面準備硬件。

1、STM32啟動方式:SystemBoot。這個非常重要!我就是在這里卡了好久。

我的這塊板子:

不同的開發板BOOT0、BOOT1設置的不一樣,我的是用跳帽短接BOOT0,BOOT1不動之后復位進入SystemBoot模式。(stm32有多鐘啟動模式,UserBoot、SystemBoot、SRAM_Boot模式,其中如果使用串口下載要擦寫FLASH的話一定要用SystemBoot模式,UserBoot模式是寫好程序之后執行這個程序的時候用的,在我的板子上是BOOT0不短接,BOOT1隨意,也就是不用跳線帽的時候的默認模式)

如果模式錯了,可能會出現下面這個情況(我當初就是在這里糾結了好久):

2、安好跳線帽之后按reset復位,寫好的程序就可以往里面燒寫了。


三、來點具體案例吧。

1、LED閃爍。你的開發板上應該有板載LED吧,什么?你的是核心板?那就跳過這一個到下一個或者外接一個LED吧。

led閃爍首先要搞清楚led接在哪個管腳上,我的有三個,分別接在接在PA2、PA3還有PB2上,看PA1比較順眼,那就PB1吧。

注意,Arduino自家板子的I/O口是有編號的,比如在Arduino Ide里面打開一個實例程序,Blink,可以發現編號為13的管腳接著一個led。。。但是在stm32上面編號是怎么對應的就不一定了。。于是,我們就不能用編號了,用管腳標號吧,買板子的時候商家會給,硬件原理圖里面,比如下面這個,可以看出PA2、PA3都是led,那么我們只要把原來實例代碼的編號改成這個PA2、PA3就行了。

[cpp] view plain copy
  • int?led1=PA2;??
  • void?setup()?{??????
  • ????pinMode(led1,OUTPUT);??
  • }?????
  • void?loop()?{??????
  • ????digitalWrite(led1,HIGH);??
  • ????delay(1000);??
  • ????digitalWrite(led1,LOW);??
  • ????delay(1000);??
  • }??


  • 下載到板子上,拔掉BOOT0處的跳線帽,reset,就可以看到led1在blink了。注意:每次下載程序都要進入SystemBoot模式下載!


    2、串口的應用,就是用串口從板子往電腦發一個Hello World。實例里面可以看出來,Serial.print(“”)函數是打印引號里面的內容,而Serial.println(“”)是打印引號里面內容之后多打一個換行符。這里程序設置波特率為9600,串口調試器端要設置的一樣,注意右下角。

    [cpp] view plain copy
  • void?setup()?{??????
  • ????Serial.begin(9600);//?opens?serial?port,?sets?data?rate?to?9600?bps?????
  • ????Serial.println("Hello?World!");???
  • ????Serial.print("Hello?World!");??
  • ????Serial.print("Hello?World!\n");??
  • ????Serial.print("Hello?World!");??
  • ?}?????
  • ?void?loop()?{??????
  • ???
  • ?}??




  • 要是還有什么不明白,可以到這里https://github.com/rogerclarkmelbourne/Arduino_STM32/wiki/Installation

    在github上面的一篇文章,描述很詳細,不過網速實在慢,平常國內下載能到2m/s,校內20-30m/s,但github也就20k/s。。。。而且用百度云離線下載反而更慢。。。


    OK,就寫這些吧。

    總結

    以上是生活随笔為你收集整理的在stm32上使用Arduino IDE(神舟I号为例)的全部內容,希望文章能夠幫你解決所遇到的問題。

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