【keil】單步調試

一、步驟

1、打開stc-isp軟件

2.打開keil仿真設置,選擇對應的單片機型號

3.點擊將所選目標單片機設置為仿真芯片,點擊下載,按一下單片機打下載按鈕

4.此時已經將仿真程序下載到單片機

5.此時點擊options,找到debug選擇STC Montor 51 Driver

找到當前對應的端口號(和stc里面的端口號對應)

6.點擊進入調試界面

注意點:默認狀態選擇到左邊,應修改到選擇右邊

也可以看右下角,如果是simulation?顯示的是STC Monitor-51才是對的

7.run開始運行 stop停止運行

二、單步調試

1、數碼管顯示不正常

?點擊數組后,點擊watch Windows

取消16進制顯示

將剛才打印到的數組添加進去

注意的是,只用在停止狀態數據才會刷新,程序運行過程中不會刷新

可以看到,這個數組是正確的?

下面繼續排查 數碼管轉換函數中的另一個數組,一定要在停止狀態添加,然后再運行,否則數據無法刷新

查看watch窗口可以看到,除了第一個,后面的都是空

因此,目前可以確定,錯誤在數碼管轉換函數里

進入函數發現,變量的初始條件沒有設置

如果發現錯誤要進行修改,一定要退出調試界面,否則無法成功修改,要退出調試界面重新編譯后,再進入調試界面,這個程序才會被更新?

2.忘記寫EA=1

在其他地方打斷點不會聽,說明沒有執行到這里

?然后再逐層往下面大斷點

發現時間變量是0,這是不合理的

將斷點打到這里,程序仍然沒有停,說明程序沒有運行到中斷服務程序

然后再去看中斷服務程序的初始化

看到是正確的,那么就可能是總中斷沒有開

3.斷點的刪除

刪除所有斷點

當然也可以手動刪除

斷點所停的行代表沒有執行

4.功能按鍵

點擊step是進入函數和執行當前這一步

?

點擊step over是跳過這一個,是執行完再跳到下一步

step和step over的區別是:如果是函數,step會進入這個函數,step over是無論是不是函數,都執行到下一行

點擊step out是 往下執行完函數,直到退出當前的函數

5.關于按鍵

在調試模式下,矩陣鍵盤上面的兩行按鍵不能使用,由于P30和P31用到了串口通信,一旦按下上兩行的按鍵,就會干擾串口通信調試就會崩潰掉?

如果程序里用到了這兩行,就可以換兩個按鍵,比如67改成89

在獨立按鍵模式下,就可以換一下45

?6.頭文件

當發現報一串錯誤時,可能是頭文件的函數沒有加分號

三、打包文件夾

選中兩個,然后壓縮到zip文件

?

然后以準考證號命名壓縮包

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75007.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75007.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75007.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++弱指針實現原理

在 C 中,弱指針(std::weak_ptr)是一種特殊的智能指針,其核心目標是?解決 std::shared_ptr 的循環引用問題?,同時不增加對象的引用計數。它的實現原理基于與 std::shared_ptr 共享的 ?控制塊(Control Blo…

【ManiSkill】環境success條件和reward函數學習筆記

1. “PickCube-v1” info["success"]:用于指示任務是否成功完成 布爾型張量,在環境的evaluate()方法中計算并返回: "success": is_obj_placed & is_robot_static這確保了機器人不僅能將物體準確放置在目標位置&am…

用空閑時間做了一個小程序-二維碼生成器

一直在摸魚中賺錢的大家好呀~ 先向各位魚友們匯報一下情況,目前小程序已經有900的魚友注冊使用過。雖然每天都有新的魚友注冊,但是魚友增長的還很緩慢。自從國慶前的文字轉語音的工具上線到現在已經將近有1個月沒有更新小程序了。但是今天終終終終終于又…

31天Python入門——第14天:異常處理

你好,我是安然無虞。 文章目錄 異常處理1. Python異常2. 異常捕獲try-except語句捕獲所有的異常信息獲取異常對象finally塊 3. raise語句4. 自定義異常5. 函數調用里面產生的異常補充練習 異常處理 1. Python異常 Python異常指的是在程序執行過程中發生的錯誤或異…

PyQt6實例_批量下載pdf工具_使用pyinstaller與installForge打包成exe文件

目錄 前置: 步驟: step one 準備好已開發完畢的項目代碼 step two 安裝pyinstaller step three 執行pyinstaller pdfdownload.py,獲取初始.spec文件 step four 修改.spec文件,將data文件夾加入到打包程序中 step five 增加…

Axure項目實戰:智慧城市APP(完整交互匯總版)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝! 課程主題:智慧城市APP 主要內容:主功能(社保查詢、醫療信息、公交查詢等)、活動、消息、我的頁面匯總 應用場景&#xff…

Appium Inspector使用教程

1.下載最新版本 https://github.com/appium/appium-inspector/releases 2.本地啟動一個Appium服務 若Android SDK已安裝Appium服務,則在任意terminal使用appium啟動服務即可 3.Appium Inspector客戶端配置連接到Appium服務 Configuring and Starting a Session…

Pycharm(七):幾個簡單案例

一.剪刀石頭布 需求:和電腦玩剪刀石頭布游戲 考察點:1.隨機數;2.判斷語句 import random # numrandom.randint(1,3) # print(num) # print(**30) #1.錄入玩家手勢 playerint(input(請輸入手勢:(1.剪刀 2.石頭 3&…

Python Cookbook-4.13 獲取字典的一個子集

任務 你有一個巨大的字典,字典中的一些鍵屬于一個特定的集合,而你想創建一個包含這個鍵集合及其對應值的新字典。 解決方案 如果你不想改動原字典: def sub_dict(somedict,somekeys,default None):return dict([(k, somedict.get(k,default)) for k…

VMware Ubuntu 網絡配置全攻略:從斷網到暢通無阻

一、網絡連接模式選擇(先搞懂原理) VMware提供三種網絡模式,就像手機的不同網絡套餐: 模式適用場景特點類比NAT個人上網/新手首選虛擬機共享主機IP,能上網但隱身家用WiFi橋接服務器/需要被局域網訪問虛擬機會獲得獨立…

鏈表(C++)

這是本人第二次學習鏈表,第一次學習鏈表是在大一上的C語言課上,首次接觸,感到有些難;第二次是在大一下學習數據結構時(就是這次),使用C再次理解鏈表。同時,這也是開啟數據結構學習寫…

【SPP】藍牙串口協議應用層深度解析:從連接建立到實戰開發

目錄 一、SPP應用層協議框架與角色模型 1.1 分層協議棧模型 1.2 設備角色模型(DevA 與 DevB 交互) 二、連接建立流程:從 SDP 到 RFCOMM 2.1 服務發現(SDP)流程(SDP 記錄關鍵參數) 2.2 連接…

Giteki 認證:無線產品進入日本市場的關鍵保障

目錄 適用產品認證范圍 認證項目及技術要求 認證流程 認證周期 與其他認證的對比 常見問題 注意事項 Giteki 認證,其名稱來源于日本語 “技適マーク”,羅馬字拼寫為 “GITEKI” ,在行業內也常被稱為 Telec 認證、MIC 認證、RF 認證或技…

Ubuntu24.04 配置遠程桌面服務

一:安裝 sudo apt update sudo apt install vino 二:設置 gsettings set org.gnome.Vino require-encryption false # 關閉加密(某些 VNC 客戶端不支持加密) gsettings set org.gnome.Vino prompt-enabled false # 關閉連接…

人工智能與軟件工程結合的發展趨勢

AI與軟件工程的結合正在深刻改變軟件開發的流程、工具和方法,其發展方向涵蓋了從代碼生成到系統維護的整個生命周期。以下是主要的發展方向和技術趨勢: 1. 軟件架構體系的重構 從“面向過程”到“面向目標”的架構轉型: AI驅動軟件設計以目標…

轉發和重定向的區別詳解

轉發(Forward)和重定向(Redirect)是 Web 開發中兩種常用的請求處理方式,主要用于將客戶端請求從一個資源轉移到另一個資源。它們在實現機制、行為表現和應用場景上有顯著區別,以下是對兩者的詳細解析&#…

python專題1-----判斷一個變量是否是字符串類型

在 Python 中,可以使用 isinstance() 函數來判斷一個變量是否是字符串類型。字符串在 Python 中是以 str 類型表示的。下面是一些示例代碼,展示如何判斷一個變量是否是字符串類型: # 示例變量 var1 "Hello, World!" var2 12345 …

軟件工程之需求工程(需求獲取、分析、驗證)

一、需求獲取(Requirements Elicitation) 1. 定義與目標 需求獲取是通過與用戶、利益相關者等交互,識別并捕獲系統需求的過程,目標是明確用戶意圖與業務目標,避免后期因需求偏差導致返工。 2. 主要方法 問卷法&…

Java簡單生成pdf

生成這樣的PDF 直接上代碼 public static void main(String[] args) {String logoPath "Q:\\IdeaWork\\Demo\\src\\main\\webapp\\images\\logo.jpg"; // 替換為實際路徑String baseDir "E:/Demo/TEST/problem/Generate"; // 基礎目錄int year 2025; //…

k8s存儲介紹(六)StorangeClass

一、Kubernetes 存儲類(StorageClass)詳解 1. 什么是 StorageClass? 在 Kubernetes 中,StorageClass(存儲類)是一種用于動態創建 PersistentVolume(PV)的資源對象。它允許管理員根…