在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32G0開發(fā)筆記:使用libopencm3庫

CHANBAEK ? 來源:電子技術(shù)攻城獅 ? 作者:MakerInChina.cn ? 2023-01-17 10:56 ? 次閱讀

使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,開發(fā)環(huán)境為VSCode+PIO插件,這里以開發(fā)STM32G070RB芯片為例介紹。

1 自定義開發(fā)板

由于使用的STM32G070RB在pio的libopencm3框架中沒有這個型號,因此首先需要先定義一個自定義開發(fā)板型號;

  • 安裝ST-STM32 platforms

    在Platformio的platforms中搜索STM32,然后安裝ST-STM32 platforms框架,

  • 根據(jù)已有的相似型號進行更改配置json文件

    在PIO安裝目錄找到對應(yīng)平臺開發(fā)板文件夾,比如我這里pio安裝在默認的用戶目錄,則STM32開發(fā)板的路徑如下:

1C:\\Users\\userName\\.platformio\\platforms\\ststm32\\boards

復(fù)制一個相近的板子型號的json配置文件命名為 MonkeyPi_STM32_G070RB.json,更改mcu型號、svd等信息;這里復(fù)制修改 nucleo_g071rb 這個json文件,修改后如下:

1{
 2  "build": {
 3    "core": "stm32",
 4    "cpu": "cortex-m0plus",
 5    "extra_flags": "-DSTM32G0xx -DSTM32G070xx",
 6    "f_cpu": "64000000L",
 7    "framework_extra_flags": {
 8      "arduino": "-D__CORTEX_SC=0"
 9    },
10    "mcu": "stm32g070rbt6",
11    "product_line": "STM32G070xx",
12    "variant": "STM32G0xx/G070RBT"
13  },
14  "debug": {
15    "default_tools": [
16      "stlink"
17    ],
18    "jlink_device": "STM32G070RB",
19    "onboard_tools": [
20      "stlink"
21    ],
22    "openocd_target": "stm32g0x",
23    "svd_path": "STM32G070.svd"
24  },
25  "frameworks": [
26    "arduino",
27    "cmsis",
28    "libopencm3",
29    "stm32cube",
30    "zephyr"
31  ],
32  "name": "MonkeyPi_STM32_G070RB",
33  "upload": {
34    "maximum_ram_size": 36864,
35    "maximum_size": 131072,
36    "protocol": "stlink",
37    "protocols": [
38      "stlink",
39      "jlink",
40      "cmsis-dap",
41      "blackmagic",
42      "mbed"
43    ]
44  },
45  "url": "https://www.st.com/zh/microcontrollers-microprocessors/stm32g070rb.html",
46  "vendor": "ST"
47}

2 新建測試項目

  • 新建項目,并選擇開發(fā)板型號為自定義板子名稱 MonkeyPi_STM32_G070RB,開發(fā)框架選擇libopencm3:

  • 在項目目錄 src下新建主程序文件 main.c ,內(nèi)容如下:
1/**
 2 * @file main.c
 3 * @author MakerInChina (makerinchina.cn)
 4 * @brief 
 5 * @version 0.01
 6 * @date 2022-09-04
 7 * 
 8 * @copyright Copyright (c) 2022
 9 * 
10 */
11
12#include 
13#include 
14
15int main(void)
16{
17
18    //system clock
19    rcc_clock_setup(&rcc_clock_config[RCC_CLOCK_CONFIG_HSI_PLL_64MHZ]);
20
21    //gpio setting
22    rcc_periph_clock_enable(RCC_GPIOC);
23    gpio_mode_setup(GPIOC,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,GPIO12);
24
25    while (1)
26    {
27        //toggle gpio
28        gpio_toggle(GPIOC,GPIO12);
29
30        for(int i=0; i<4000000; i++){
31            __asm__("nop;");
32        }
33    }
34
35    return 0;
36}

這個測試程序中 先使用 rcc_clock_setup 函數(shù)配置系統(tǒng)時鐘為64MHz,然后使用 gpio_mode_setup 函數(shù)設(shè)置GPIO模式,最后調(diào)用 gpio_toggle 對GPIO進行翻轉(zhuǎn)操作。

3 編譯和下載

  • 下載方式需要根據(jù)自己的硬件進行修改,在項目的platformio.ini文件中可以配置,這里使用DAPLink SWD方式下載,因此將upload_protocol更改為cmsis-dap,則platformio.ini文件如下:
1[env:MonkeyPi_STM32_G070RB]
2platform = ststm32
3board = MonkeyPi_STM32_G070RB
4framework = libopencm3
5
6upload_protocol=cmsis-dap
7debug_tool=cmsis-dap
  • 然后就可以進行燒錄和調(diào)試了(使用openocd方式進行下載和調(diào)試):

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351186
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    355985
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5050

    瀏覽量

    97456
  • JSON
    +關(guān)注

    關(guān)注

    0

    文章

    117

    瀏覽量

    6964
  • PIO
    PIO
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    6210
收藏 人收藏

    評論

    相關(guān)推薦

    STM32G0開發(fā)筆記:FreeRTOS和FreeModbus使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和FreeModbus使用。
    的頭像 發(fā)表于 01-16 14:44 ?5692次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:FreeRTOS和FreeModbus<b class='flag-5'>庫</b>使用

    STM32G0開發(fā)筆記:FreeRTOS和CLI組件使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為FreeRTOS和CLI組件使用。
    的頭像 發(fā)表于 01-16 14:47 ?3598次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:FreeRTOS和CLI組件使用

    STM32G0開發(fā)筆記:使用FreeRTOS系統(tǒng)的隊列Queue

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為使用FreeRTOS系統(tǒng)的隊列Queue。
    的頭像 發(fā)表于 01-16 14:50 ?1393次閱讀

    STM32G0開發(fā)筆記:使用FreeRTOS系統(tǒng)

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為使用FreeRTOS系統(tǒng)。
    的頭像 發(fā)表于 01-16 15:07 ?2419次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:使用FreeRTOS系統(tǒng)

    STM32G0開發(fā)筆記:使用ADC進行NTC溫度采集

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下使用ADC進行NTC溫度采集。
    的頭像 發(fā)表于 01-16 15:12 ?9614次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:使用ADC進行NTC溫度采集

    STM32G0開發(fā)筆記:用PWM來實現(xiàn)LED呼吸燈效果

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面使用PWM來實現(xiàn)LED呼吸燈效果。
    的頭像 發(fā)表于 01-16 15:15 ?2294次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:用PWM來實現(xiàn)LED呼吸燈效果

    STM32G0開發(fā)筆記:EEPROM M24C02的使用方法

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為EEPROM M24C02的使用方法。
    的頭像 發(fā)表于 01-16 15:19 ?2891次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:EEPROM M24C02的使用方法

    STM32G0開發(fā)筆記:I2C接口軟件模擬與GXHT30溫濕度模塊

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下使用軟件模擬I2C總線時序,并用它來讀取GXHT30溫濕度數(shù)據(jù)。
    的頭像 發(fā)表于 01-19 16:24 ?3821次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:I2C接口軟件模擬與GXHT30溫濕度模塊

    STM32G0開發(fā)筆記:SD卡模塊的使用方法

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面介紹SD卡模塊的使用方法。
    的頭像 發(fā)表于 01-19 16:27 ?2343次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:SD卡模塊的使用方法

    STM32G0開發(fā)筆記:SPI接口的基本使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面介紹SPI接口的基本使用。
    的頭像 發(fā)表于 01-17 10:38 ?3131次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:SPI接口的基本使用

    STM32G0開發(fā)筆記:多通道ADC與DMA的使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為多通道ADC與DMA的使用。
    的頭像 發(fā)表于 01-17 10:41 ?7057次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:多通道ADC與DMA的使用

    STM32G0開發(fā)筆記:定時器timer的基本使用方法

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為定時器timer的基本使用方法。
    的頭像 發(fā)表于 01-17 10:43 ?3710次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:定時器timer的基本使用方法

    STM32G0開發(fā)筆記:串口中斷的使用

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,以下為串口中斷的使用。
    的頭像 發(fā)表于 01-17 10:46 ?2363次閱讀

    STM32G0開發(fā)筆記:GPIO接按鍵的使用方式

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為GPIO接按鍵的使用方式。
    的頭像 發(fā)表于 01-17 10:48 ?1782次閱讀

    STM32G0開發(fā)筆記:LED燈示例

    使用Platformio平臺的libopencm3開發(fā)框架來開發(fā)STM32G0,下面為LED燈示例。
    的頭像 發(fā)表于 01-17 10:52 ?1421次閱讀
    <b class='flag-5'>STM32G0</b><b class='flag-5'>開發(fā)筆記</b>:LED燈示例
    主站蜘蛛池模板: 亚洲精品自拍区在线观看| 四虎最新网址在线观看| 色老头在线精品视频在线播放| 中文三 级 黄 色 片| 拍真实国产伦偷精品| 12306影院午夜入口| 色爱区综合激月婷婷激情五月| 1024手机最新手机在线| 最好免费高清视频观看韩国| 美女网色| 欧美簧片| 亚洲三级色| 男人性天堂| 天堂视频免费在线观看| www.综合色| 狂野欧美性猛交xxxx免费| 四虎在线免费播放| 夜夜艹天天干| 亚洲国产欧美在线人成aaa| 一级做a爱片在线播放| 狠狠丁香激情久久综合| 成人午夜视频免费看欧美| 午色| 永久免费观看午夜视频在线| 一区二区中文字幕| 欧美成人一区二区三区在线电影| 国模大尺度酒店私拍视频拍拍| 99精品视频免费| 8888奇米四色在线| 欧美视频小说| 玖玖福利| 婷婷色网| 国模大胆一区二区三区| 性欧美xx| 欧美日韩高清性色生活片| 色播影院性播影院私人影院| 中文三级视频| 91极品反差婊在线观看| 毛片基地在线| 国产好深好硬好爽我还要视频 | 天天插插|