基于keil的在線仿真 1)安裝keil
官網(wǎng)鏈接: http://www2.keil.com/mdk5
安裝教程自己在網(wǎng)上可以找到
2)安裝華大ide包
官網(wǎng)鏈接: www.hdsc.com.cn/Category82-1425?All=1
安裝教程:雙擊IDE運行包,然后一直往下操作
注意:如果是自己找的包,或者是某寶給的,使用這種包flash download 里邊可能會找不到華大芯片的類型,加也加不進去。所以還是建議使用官方的。
3)連接板子,下好驅(qū)動
使用的是st-link,st-link在keil安裝目錄下有,一般是安裝目錄\ARM\STLink ,里邊有個exe程序,運行然后device connect(就按著程序提示一直裝),裝好之后打開電腦->屬性->設備管理器,就能看到有個STM32 stlink的,說明裝好了。
4)下載
打開keil,然后打開點燈的例程(如果是自己找的SDK,記得要核對芯片的型號是否是自己板子的類型)
魔術棒->debug->stlink debugger 然后按setting
正常情況下是SW device 有顯示地址 ,debug adapter 有顯示正確內(nèi)容 flash download有顯示芯片型號
如果SW device 沒顯示,說明沒識別到芯片(我之前用的jlink識別不到,就換了個stlink,暫時沒想到別的方法可以解決)
如果flash download 沒有對應的芯片,點add自己加進去,如果add的列表沒有芯片的型號,要么自己把flm文件給放到對應的flash文件夾,要么就重新裝ide包。(都不行的話就沒辦法了)
點擊 rebuild(兩個向下箭頭的圖標)編譯,沒問題的話,就點旁邊的download,最后點擊一個帶d的放大鏡圖標進入調(diào)試,點擊run就可以看到板子上的燈在閃
如果下載成功燈沒閃的話,要么是硬件的問題,要么是程序的問題。
程序的問題,需要翻原理圖,看代碼對應的端口是否是連接到led的那個端口
硬件的問題,電路連接是否正確,仿真器是否能正確識別
制作出來的實物圖如下:
IMG_20201102_124128.jpg (3.15 MB, 下載次數(shù): 95)
下載附件
2020-11-2 12:46 上傳
單片機源程序如下:
- /******************************************************************************
- * Include files
- ******************************************************************************/
- #include "gpio.h"
- /******************************************************************************
- * Local pre-processor symbols/macros ('#define')
- ******************************************************************************/
- /******************************************************************************
- * Global variable definitions (declared in header file with 'extern')
- ******************************************************************************/
- /******************************************************************************
- * Local type definitions ('typedef')
- ******************************************************************************/
- /******************************************************************************
- * Local function prototypes ('static')
- ******************************************************************************/
- /******************************************************************************
- * Local variable definitions ('static') *
- ******************************************************************************/
- /******************************************************************************
- * Local pre-processor symbols/macros ('#define')
- ******************************************************************************/
- /*****************************************************************************
- * Function implementation - global ('extern') and local ('static')
- ******************************************************************************/
- static void App_LedInit(void);
- /**
- ******************************************************************************
- ** \brief Main function of project
- **
- ** \return uint32_t return value, if needed
- **
- ** This sample
- **
- ******************************************************************************/
- int32_t main(void)
- {
- ///< LED端口初始化
- App_LedInit();
- while(1)
- {
- ///< LED點亮
- Gpio_SetIO(EVB_LEDR_PORT, EVB_LEDR_PIN);
- delay1ms(1000);
- ///< LED關閉
- Gpio_ClrIO(EVB_LEDR_PORT, EVB_LEDR_PIN);
- delay1ms(1000);
- }
- }
- static void App_LedInit(void)
- {
- stc_gpio_cfg_t stcGpioCfg;
-
- ///< 打開GPIO外設時鐘門控
- Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
-
- ///< 端口方向配置->輸出(其它參數(shù)與以上(輸入)配置參數(shù)一致)
- stcGpioCfg.enDir = GpioDirOut;
- ///< 端口上下拉配置->下拉
- stcGpioCfg.enPu = GpioPuDisable;
- stcGpioCfg.enPd = GpioPdEnable;
-
- ///< LED關閉
- Gpio_ClrIO(EVB_LEDR_PORT, EVB_LEDR_PIN);
-
- ///< GPIO IO LED端口初始化
- Gpio_Init(EVB_LEDR_PORT, EVB_LEDR_PIN, &stcGpioCfg);
-
- }
- /******************************************************************************
- * EOF (not truncated)
- ******************************************************************************/
復制代碼
所有資料51hei提供下載:
gpio_output.zip
(254.86 KB, 下載次數(shù): 21)
2020-11-2 12:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|