開(kāi)發(fā)板使用入門
目前官方提供的100PIN開(kāi)發(fā)板如下:

如果使用的已經(jīng)是100PIN的開(kāi)發(fā)板,請(qǐng)參照以下步驟操作。
如果使用的是其他PIN腳(如:32PIN、48PIN、64PIN)的板子,也是參照這里的步驟,最后再修改一點(diǎn)配置即可。
.
步驟:
1.上電
給開(kāi)發(fā)板5V供電,打開(kāi)開(kāi)關(guān),可以看到電源旁邊的小紅燈亮起。
2. 使用example例程
打開(kāi)example例程,在SDK路徑下:
D:xxxxxAgRV_pioplatformsAgRVexamplesexample?(注意這里的兩重example)
由于開(kāi)發(fā)板使用的是407芯片,需要先修改platformio.ini中的board類型:
board = agrv2k_103
修改為:
board = agrv2k_407
注意:該文件修改后,必須手動(dòng)保存。如果是第一次操作,保存時(shí)VSCode右下角會(huì)彈出“是否覆蓋”對(duì)話框,要選“是”。
為了驗(yàn)證簡(jiǎn)單化,可以先把example_board.ve中的其他配置暫時(shí)刪除,只留下sysclk、led和uart0(用于log輸出)的配置:
SYSCLK 100
HSECLK 8
GPIO4_1 PIN_32 # LED1
GPIO4_2 PIN_31 # LED2
如下圖:

注意:該文件修改后,也必須手動(dòng)保存。如果是第一次操作,保存時(shí)VSCode右下角會(huì)彈出“是否覆蓋”對(duì)話框,要選“是”。
3. 燒錄VE文件和代碼bin
燒錄程序需要使用dap-link(AGM專用)或通用的jlink;(串口燒錄這里不做討論)
Dap-link和Jlink在跟開(kāi)發(fā)板的連線上,都是jtag的swd兩線(clk和tms)模式。
配置上,如果使用Dap-link(AGM專用),需要在platformio.ini中的配置該行:
protocol = cmsis-dap-openocd
如果使用Jlink,需要在platformio.ini中的配置以下兩行:
protocol = jlink-openocd
如果使用dap-link,該燒錄器是免驅(qū)動(dòng)的,不用安裝任何驅(qū)動(dòng)。
如果使用Jlink,需要在原有Jlink基礎(chǔ)上安裝插件zadig。方法如下:
安裝插件:第一次使用jlink,需要先安裝插件【zadig-2.8.exe】,安裝參考下圖:
(該插件在sdk路徑的根目錄下)
注:如果第一步從下拉列表中找不到【J-Link】項(xiàng),可以把下拉列表打開(kāi),插拔Jlink 幾次,找列表中的變化項(xiàng)。列表中的那個(gè)變化項(xiàng),就是要更新驅(qū)動(dòng)的項(xiàng)。
燒錄:
新開(kāi)發(fā)板第一次使用,要先燒錄VE配置。(不燒錄VE而先燒錄程序bin,會(huì)報(bào)錯(cuò))
燒錄VE:(這里的“燒錄VE”,更確切的說(shuō),是燒錄自動(dòng)生成的cpld.bin)

再燒錄程序:(即,燒錄code.bin)

注意:這里的下載,都是在release欄下邊。
仿真:
點(diǎn)擊仿真按鈕,可以進(jìn)入仿真調(diào)試。可單步運(yùn)行到main函數(shù)的結(jié)尾。

單步狀態(tài)下如圖:

4. 查看led燈
在example樣例程序的main函數(shù)中,最后是調(diào)用函數(shù)TestGpio()。
進(jìn)入TestGpio()函數(shù),里邊是對(duì)LED燈的閃燈操作。
如果使用默認(rèn)example程序,按前邊的操作一路走下來(lái),此時(shí)是可以看到左下角兩個(gè)led 燈一起閃爍的。
5.查看log輸出:
在以上的基礎(chǔ)上,在example_gpio.c中的TestGpio()函數(shù)中,while(1)里增加一句log,如下:

注意:該文件修改后,也必須手動(dòng)保存。如果是第一次操作,保存時(shí)VSCode右下角會(huì)彈出“是否覆蓋”對(duì)話框,要選“是”。
最后,再編譯并燒錄程序 code.bin。
然后,用串口線,接到開(kāi)發(fā)板的串口0(參開(kāi)發(fā)板標(biāo)識(shí)圖)上,在PC端的串口工具(波特率115200)上可以看到log的輸出信息,如下圖所示:

以上,展示了拿到開(kāi)發(fā)板后驗(yàn)證 LED 燈閃爍 和 串口log輸出的功能。
6. 如果是其他PIN腳板子
如果使用的其他PIN腳的板子,VScode中的修改項(xiàng)是相近的:1.platformio.ini里的型號(hào)配置;2.example_board.ve里的引腳配置。看懂一種描述,其他的都相仿。
接下來(lái)分別描述。
.
需要驗(yàn)證(AG32VF103,32pin)的板子:
a. 需要修改platformio.ini里的:board?和?board_logic.device。
board = agrv2k_103
board_logic.device = AGRV2KQ32
b. 需要修改example_board.ve里的串口0和led引腳:
UART0_UARTRXD PIN_9
UART0_UARTTXD PIN_8
GPIO4_1 PIN_14 # LED1?----請(qǐng)找到實(shí)際led的引腳
GPIO4_2 PIN_13 # LED2?----請(qǐng)找到實(shí)際led的引腳
以上修改后,注意對(duì)修改過(guò)的文件的保存。
然后,燒錄VE,燒錄程序,就可以看到2個(gè)LED閃爍,串口線RX接PIN_8在PC上能看到有l(wèi)og輸出。
.
需要驗(yàn)證(AG32VF103,48pin)的板子:
a. 需要修改platformio.ini里的:board?和?board_logic.device。
board = agrv2k_103
board_logic.device = AGRV2KL48
b. 需要修改example_board.ve里的串口0和led引腳:
UART0_UARTRXD PIN_31
UART0_UARTTXD PIN_30
GPIO4_1 PIN_2 # LED1?----請(qǐng)找到實(shí)際led的引腳
以上修改后,注意對(duì)修改過(guò)的文件的保存。
48PIN有點(diǎn)特殊的改動(dòng):
在example_board.asf文件中,有兩行(這兩行是在100PIN中對(duì)23腳使用的樣例),這里加#注掉即可。

以上修改后,注意對(duì)修改文件的保存。
然后,燒錄VE,燒錄程序,就可以看到1個(gè)LED閃爍,串口線RX接PIN_30在PC上能看到有l(wèi)og輸出。
.
需要驗(yàn)證(AG32VF407,64pin)的板子:
a. 需要修改platformio.ini里的:board?和?board_logic.device。
board = agrv2k_407
board_logic.device = AGRV2KL64
b. 需要修改example_board.ve里的串口0和led引腳:
UART0_UARTRXD PIN_43
UART0_UARTTXD PIN_42
GPIO4_1 PIN_10?# LED1?----請(qǐng)找到實(shí)際led的引腳
GPIO4_2 PIN_9?# LED2?----請(qǐng)找到實(shí)際led的引腳
以上修改后,注意對(duì)修改過(guò)的文件的保存。
然后,燒錄VE,燒錄程序,就可以看到2個(gè)LED閃爍,串口線RX接PIN_42在PC上能看到有l(wèi)og輸出。
.
7. 關(guān)于型號(hào) 103/303/407的說(shuō)明
這里命名的103/303/407,只是對(duì)標(biāo)ST系列的產(chǎn)品名而已。
事實(shí)上,所有AG32系列產(chǎn)品,除了flash大小和引腳的差異外,其他都是相同的。
也就是說(shuō),103完全具有和407相同的性能,相同的外設(shè)資源。(因?yàn)橥庠O(shè)引腳大多是可以重映射的,只要引腳夠用即可)
那么,platformio.ini里配置103/303/407型號(hào)時(shí),只需要關(guān)注flash大小即可:
如果flash大小是1M,則配置board = agrv2k_407;如果flash大小是256K,則配置board = agrv2k_103
除了型號(hào)配置外,還有引腳配置項(xiàng)。引腳配置項(xiàng)根據(jù)實(shí)際配置即可。如,48腳配置:board_logic.device = AGRV2KL48,64腳配置:board_logic.device = AGRV2KL64.如果該項(xiàng)為空,則默認(rèn)為100引腳。