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

標(biāo)題: STM32如何用Proteus軟件模擬IO通信 [打印本頁]

作者: 2191186810    時(shí)間: 2021-7-14 08:41
標(biāo)題: STM32如何用Proteus軟件模擬IO通信
初學(xué)小白,關(guān)于STM32如何用Proteus軟件模擬IO通信,例如IIC通信?

作者: 夜空之巔    時(shí)間: 2021-7-14 11:04
proteus要8以上的版本再能模擬STM32,IIC在儀表里面能找到
作者: lishengaha    時(shí)間: 2021-7-15 09:25
網(wǎng)上的stm32的iic通訊基本上都是io模擬的。找個(gè)例程試下就行了
作者: 軒轅頂托    時(shí)間: 2021-7-20 00:03
普通IO口模擬串口通信 串口通信協(xié)議   串口傳輸 默認(rèn) 波特率9600 1起始位 1停止位 其他0 數(shù)據(jù)位是8位(注意圖上的給錯(cuò)了)。  傳輸時(shí),從起始位開始,從一個(gè)數(shù)據(jù)的低位(LSB)開始發(fā)送,如圖從左向右的順序,對電平拉高或拉低,最后停止位時(shí)拉高。 波特率大小,改變延時(shí)時(shí)間即可。例如9600 波特率    根據(jù)公式 : 1/9600=0.000104s(大致) 也就是說每發(fā)送1bit延時(shí)104us (下面我用9600波特率來說,代碼用的是19200) 串口發(fā)送       將電平拉低 延時(shí)104us(視為 起始位 0   傳輸數(shù)據(jù)正式開始)  其中數(shù)據(jù)我發(fā)送的是16進(jìn)制數(shù)據(jù)(8bit  一字節(jié)  例如10001000)  將想要發(fā)的數(shù)據(jù)按照二進(jìn)制的‘0’‘1’高低電平的方式,每發(fā)送1bit 延時(shí)104us   直到發(fā)送完到終止位 將電平拉高視為一包數(shù)據(jù)傳輸結(jié)束。(根據(jù)需求更改即可) 串口接收    (稍微麻煩一些) 兩種方法:第一種可以用定時(shí)中斷,每隔104us開啟一次定時(shí)中斷,中斷函數(shù)內(nèi)進(jìn)行高低電平判斷,將這些bit存儲(chǔ)最后轉(zhuǎn)換成需要的數(shù)據(jù)。第二種,用外部中斷處理函數(shù),外部中斷設(shè)置同時(shí)開啟上升沿下降沿,思路:根據(jù)上升下降的電平跳變分析。比如說,觸發(fā)外部中斷后檢測電平高低,記錄一下當(dāng)前時(shí)間,然后再進(jìn)入外部中斷后 計(jì)算出總共幾個(gè)bit   (兩個(gè)沿跳變之間的時(shí)間 =現(xiàn)在記錄的時(shí)間 — 之前記錄的時(shí)間        bit=這個(gè)時(shí)間/104us)  ,知道這個(gè)就可以轉(zhuǎn)換數(shù)據(jù)了。 定時(shí)中斷邏輯相對外部中斷而言簡單好寫,但是數(shù)據(jù)多的時(shí)候準(zhǔn)確率下降很多,容易丟數(shù)據(jù)(因?yàn)槎〞r(shí)中斷畢竟用計(jì)時(shí)開啟中斷,不可能時(shí)間準(zhǔn)確每104us開啟一次,數(shù)據(jù)一多時(shí)間誤差大,自然丟包。可以嘗試每發(fā)一串?dāng)?shù)據(jù),重新計(jì)時(shí)校準(zhǔn)一次)。外部中斷較為準(zhǔn)確,檢測的高低電平跳變較為明顯唯一,一個(gè)跳變就是一個(gè)數(shù)據(jù),只是分析情況比較多。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1