久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

stm32用spi協(xié)議在同一塊板子之間實現(xiàn)數(shù)據(jù)收發(fā)遇到的問題

查看數(shù): 1222 | 評論數(shù): 5 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2022-10-19 00:35

正文摘要:

HAL庫函數(shù)編程,同一塊板子里SPI1做主機,SPI2做從機,SPI和相關(guān)GPIO口配置完成后,主程序里用HAL_SPI_Receive_IT()準備接受數(shù)據(jù)。圖片里是main.c中發(fā)送數(shù)據(jù)的程序和中斷回調(diào)函數(shù)(片選NSS寫在SPI2下了,不過設(shè)置NSS ...

回復(fù)

ID:624769 發(fā)表于 2022-10-22 16:12
yzwzfyz 發(fā)表于 2022-10-19 08:15
設(shè)有A,B二機。
1、A在發(fā)送時,必須保證B在接收。否則數(shù)據(jù)會丟失。
2、B在反回數(shù)據(jù)時,必須保證A在接收。 ...

spi有主從關(guān)系,a機發(fā),b機收,需要確保b機狀態(tài),但b機返回時,不是考慮a機狀態(tài),時鐘控制在a機手里,所以此時應(yīng)當依然是a機考慮b機是否準備好了數(shù)據(jù),所以很多偽spi傳輸會有busy線,用來從b機通知a機數(shù)據(jù)是否可以回傳。
ID:1048225 發(fā)表于 2022-10-22 09:18
yzwzfyz 發(fā)表于 2022-10-20 16:53
一個CPU在任何任何時刻只能做一件事!!!
CPU發(fā)送時,不可能接收。
CPU接收時,不可能發(fā)送。

學(xué)習(xí)了,感謝大佬相助,這就老老實實研究一下庫函數(shù)
ID:123289 發(fā)表于 2022-10-20 16:53
一個CPU在任何任何時刻只能做一件事!!!
CPU發(fā)送時,不可能接收。
CPU接收時,不可能發(fā)送。
CPU發(fā)出一個字節(jié),這個字節(jié)就瞬間被寫入了嵌入式的串行模塊,由模塊進行移位,再從串口串出一位位地數(shù)據(jù),這個過程通常需要幾ms。優(yōu)秀的程序不會讓CPU在此死等這個字節(jié)串行發(fā)完,再發(fā)第二個數(shù)據(jù)。而是轉(zhuǎn)去干其它的活。模塊發(fā)完了一個字節(jié)會通知CPU,這時CPU再回來發(fā)下個字節(jié)。
同樣, 優(yōu)秀的接收程序也不會讓CPU死等RI信號,而是在模塊告訴CPU它收到了一個串來字節(jié)后,才轉(zhuǎn)來收這個字節(jié),收到后,通常先存放起來,就去辦別的事了,決不在此花更多的時間。待下次再收到模塊的通知后,才再過來收下另一個字節(jié)。如此,當CPU收到一定的數(shù)量數(shù)據(jù)后(一幀)再集中處理。

你調(diào)用的是別人的程序(函數(shù)),根本無法控制收、發(fā)過程,也不知道別人的程序是否合理。這就悲催了。
仔細研讀你調(diào)用的函數(shù)吧。
ID:1048225 發(fā)表于 2022-10-19 09:39
yzwzfyz 發(fā)表于 2022-10-19 08:15
設(shè)有A,B二機。
1、A在發(fā)送時,必須保證B在接收。否則數(shù)據(jù)會丟失。
2、B在反回數(shù)據(jù)時,必須保證A在接收。 ...

感謝幫助
程序里是用receive_it準備在接受到數(shù)據(jù)的時候進入中斷,然后在中斷里發(fā)送數(shù)據(jù)回主機,此時兩者應(yīng)該都處于收發(fā)數(shù)據(jù)的狀態(tài)。
剛接觸單片機不久,stm32的標準庫還能看個大致,但是感覺hal庫對我來說太繞了,手上設(shè)備還只能支持hal,代碼確實是在網(wǎng)上找了例程照著大概寫的,因為我不是很能看懂hal庫怎么用
ID:123289 發(fā)表于 2022-10-19 08:15
設(shè)有A,B二機。
1、A在發(fā)送時,必須保證B在接收。否則數(shù)據(jù)會丟失。
2、B在反回數(shù)據(jù)時,必須保證A在接收。同理。
想一想SPI的通訊過程序吧,假設(shè)A要發(fā)送1,2,3,4,5。程序是送一個數(shù)據(jù)等一等,還是一齊發(fā)完5個數(shù)。當A在發(fā)數(shù)據(jù)的時候CPU在干什么?是在進行B等待嗎?還是在A的發(fā)送中?
B接收會在何時發(fā)產(chǎn)中斷,當B在返回數(shù)據(jù)時,CPU在干什么?
能理順、解決好時序關(guān)系,問題就解決了。
編程不是簡單地抄寫語句。

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 婷婷久久精品一区二区 | 一区二区三区福利视频 | 日本黄色影片在线观看 | 久久久久久国产 | 国产精品成人在线观看 | 范冰冰一级做a爰片久久毛片 | 欧美精品日韩精品国产精品 | 亚洲国产一区二区三区在线观看 | 福利视频一区二区 | 人人叉| 亚洲精品一区二区三区蜜桃久 | 夜夜骑av| 91精品国产综合久久久动漫日韩 | 欧美mv日韩mv国产网站91进入 | 色综合天天天天做夜夜夜夜做 | 欧美成人精品一区二区男人看 | 亚洲精品乱码久久久久久9色 | 成人免费看黄 | 在线一区| 蜜臀网 | 国产精品99久久久久久人 | 欧美精品一区二区三区在线播放 | 天天操综合网站 | 中文字幕在线剧情 | 日韩不卡一区二区 | 91久久| 国产精品免费视频一区 | 欧美国产中文 | 最新中文字幕在线 | 精品国产一区二区三区性色 | 成人免费一区二区三区视频网站 | 成人免费看黄网站在线观看 | 天天噜天天干 | 在线免费观看视频黄 | japanhd成人 | 999精品视频 | 日韩手机在线看片 | 国产久 | www.久草 | 免费看色 | av在线影院|