找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2506|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

STC8H單片機(jī)USB端點(diǎn)2發(fā)送程序問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:549545 發(fā)表于 2022-5-9 23:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近在搞STC8H8K64U的USB功能,由官網(wǎng)下的STC8H實(shí)驗(yàn)箱程序中的“41-USB鍵盤設(shè)備通過(guò)P0口矩陣按鍵模擬小鍵盤功能”修改,官網(wǎng)案例中只有一個(gè)鍵盤的功能,只支持端點(diǎn)1上傳,但想做一個(gè)復(fù)合鍵鼠,就要用到端點(diǎn)2上傳數(shù)據(jù)
原官方案例的端點(diǎn)1數(shù)據(jù)上傳程序?yàn)椋?br />                         WriteReg(INDEX, 1);
                        for(i=0;i<8;i++)
                        {
                                WriteReg(FIFO1, HidInput[ i]);
                        }
                        WriteReg(INCSR1, INIPRDY);
改為端點(diǎn)2上傳數(shù)據(jù):
                        WriteReg(INDEX, 2);
                        for(i=0;i<8;i++)
                        {
                                WriteReg(FIFO2, HidInput[ i]);
                        }
                        WriteReg(INCSR1, INIPRDY);

理論上描述符雖然支持1個(gè)端點(diǎn),但不影響我單片機(jī)強(qiáng)制發(fā)端點(diǎn)2,但改成端點(diǎn)2上傳數(shù)據(jù)的程序就完全沒(méi)動(dòng)靜了,中斷不進(jìn),總線分析儀也抓不到東西,看了好久手冊(cè)實(shí)在找不出原因,所以才來(lái)請(qǐng)教各位大神,希望大神們幫我解
工程文件放在附件里面

41-USB鍵盤設(shè)備通過(guò)P0口矩陣按鍵模擬小鍵盤功能.zip

87.24 KB, 下載次數(shù): 9

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2022-5-10 08:56 | 只看該作者
先弄清楚:
WriteReg、INDEX、FIFO2、 HidInput[ i]、INCSR1、INIPRDY。
是什么意思,它們對(duì)應(yīng)的內(nèi)存在哪里?
回復(fù)

使用道具 舉報(bào)

板凳
ID:549545 發(fā)表于 2022-5-10 09:38 | 只看該作者
yzwzfyz 發(fā)表于 2022-5-10 08:56
先弄清楚:
WriteReg、INDEX、FIFO2、 HidInput[ i]、INCSR1、INIPRDY。
是什么意思,它們對(duì)應(yīng)的內(nèi)存在 ...

這個(gè)大概清楚,WriteReg,這個(gè)要輸入兩個(gè)參數(shù),一個(gè)是想要間接訪問(wèn)的寄存器地址,第二個(gè)是想要寫入的數(shù)據(jù);FIFO1和FIFO2是USB端號(hào)索引寄存器,往INCSR1寫INIPRDY是發(fā)送數(shù)據(jù),所以整體來(lái)看是先往INDEX里面寫入2,選擇端點(diǎn)2,然后循環(huán)8個(gè)往FIFO2填入數(shù)據(jù),然后設(shè)置發(fā)送,但我不太清楚為什么改成端點(diǎn)2 之后發(fā)不出去
回復(fù)

使用道具 舉報(bào)

地板
ID:685744 發(fā)表于 2022-5-10 14:22 | 只看該作者
判斷條件是和FIFO1時(shí)不一樣嗎
回復(fù)

使用道具 舉報(bào)

5#
ID:123289 發(fā)表于 2022-5-10 16:18 | 只看該作者
CPU中有幾個(gè)USB。
每個(gè)USE占用的內(nèi)存緩沖有多少?對(duì)應(yīng)的物理地址在何處?
回復(fù)

使用道具 舉報(bào)

6#
ID:549545 發(fā)表于 2022-5-10 18:03 | 只看該作者
yzwzfyz 發(fā)表于 2022-5-10 16:18
CPU中有幾個(gè)USB。
每個(gè)USE占用的內(nèi)存緩沖有多少?對(duì)應(yīng)的物理地址在何處?

一共6個(gè)端點(diǎn),這個(gè)和物理地址關(guān)系不大,我只需要操作間接操作寄存器就能寫進(jìn)去,緩存是0-3收發(fā)in/out是64,4-5的in/out是128/256,但是,和這些都沒(méi)關(guān)系,因?yàn)橛瞄g接操作寄存器就能操作,我都笑死了,我改成兩個(gè)端點(diǎn)的描述,所有有關(guān)端點(diǎn)1的操作復(fù)制一次,居然就能發(fā)出去了,還是感謝大哥回帖了^v^已經(jīng)完美模擬多點(diǎn)觸控了
回復(fù)

使用道具 舉報(bào)

7#
ID:71233 發(fā)表于 2023-1-14 13:51 | 只看該作者
還是看不懂,感覺(jué)這USB功能好難玩的。
回復(fù)

使用道具 舉報(bào)

8#
ID:1034262 發(fā)表于 2023-1-14 21:18 | 只看該作者
STC官方有鼠標(biāo)鍵盤復(fù)合的例子的。
回復(fù)

使用道具 舉報(bào)

9#
ID:71233 發(fā)表于 2023-1-19 10:08 | 只看該作者
炮姐我老婆 發(fā)表于 2022-5-10 18:03
一共6個(gè)端點(diǎn),這個(gè)和物理地址關(guān)系不大,我只需要操作間接操作寄存器就能寫進(jìn)去,緩存是0-3收發(fā)in/out是64 ...

請(qǐng)問(wèn)樓主是怎樣實(shí)現(xiàn)的,我怎么老是操作不成功
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表