欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1847|回復: 3
打印 上一主題 下一主題
收起左側

STM32如何用Proteus軟件模擬IO通信

[復制鏈接]
跳轉到指定樓層
樓主
ID:952662 發表于 2021-7-14 08:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
初學小白,關于STM32如何用Proteus軟件模擬IO通信,例如IIC通信?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:256945 發表于 2021-7-14 11:04 | 只看該作者
proteus要8以上的版本再能模擬STM32,IIC在儀表里面能找到
回復

使用道具 舉報

板凳
ID:939710 發表于 2021-7-15 09:25 | 只看該作者
網上的stm32的iic通訊基本上都是io模擬的。找個例程試下就行了
回復

使用道具 舉報

地板
ID:954170 發表于 2021-7-20 00:03 來自觸屏版 | 只看該作者
普通IO口模擬串口通信 串口通信協議   串口傳輸 默認 波特率9600 1起始位 1停止位 其他0 數據位是8位(注意圖上的給錯了)。  傳輸時,從起始位開始,從一個數據的低位(LSB)開始發送,如圖從左向右的順序,對電平拉高或拉低,最后停止位時拉高。 波特率大小,改變延時時間即可。例如9600 波特率    根據公式 : 1/9600=0.000104s(大致) 也就是說每發送1bit延時104us (下面我用9600波特率來說,代碼用的是19200) 串口發送       將電平拉低 延時104us(視為 起始位 0   傳輸數據正式開始)  其中數據我發送的是16進制數據(8bit  一字節  例如10001000)  將想要發的數據按照二進制的‘0’‘1’高低電平的方式,每發送1bit 延時104us   直到發送完到終止位 將電平拉高視為一包數據傳輸結束。(根據需求更改即可) 串口接收    (稍微麻煩一些) 兩種方法:第一種可以用定時中斷,每隔104us開啟一次定時中斷,中斷函數內進行高低電平判斷,將這些bit存儲最后轉換成需要的數據。第二種,用外部中斷處理函數,外部中斷設置同時開啟上升沿下降沿,思路:根據上升下降的電平跳變分析。比如說,觸發外部中斷后檢測電平高低,記錄一下當前時間,然后再進入外部中斷后 計算出總共幾個bit   (兩個沿跳變之間的時間 =現在記錄的時間 — 之前記錄的時間        bit=這個時間/104us)  ,知道這個就可以轉換數據了。 定時中斷邏輯相對外部中斷而言簡單好寫,但是數據多的時候準確率下降很多,容易丟數據(因為定時中斷畢竟用計時開啟中斷,不可能時間準確每104us開啟一次,數據一多時間誤差大,自然丟包。可以嘗試每發一串數據,重新計時校準一次)。外部中斷較為準確,檢測的高低電平跳變較為明顯唯一,一個跳變就是一個數據,只是分析情況比較多。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表