本文將以查表法CRC為例,完整介紹如何用匯編寫一個函數(shù),以及如何傳入函數(shù)參數(shù)、獲得返回值、被其他函數(shù)調(diào)用。
最近用匯編寫了一個查表法CRC16校驗函數(shù),其中遇到很多困難,走了很多彎路,特此記錄,請大家共勉。請結(jié)合最后的附錄代碼看前面的解釋,會好理解很多。匯編代碼基本就是按照C代碼一句一句翻譯的。
1.匯編函數(shù)如何傳入?yún)?shù)
需要改寫的C函數(shù)如下:
u16 Crc16withTable(u8 *buf, u16 seeds, u16 len)
首先想到的就是怎么傳入?yún)?shù),因為匯編不像C語言一樣可以用括號表示形參,那么如何給匯編函數(shù)傳入?yún)?shù)呢?這涉及到不同芯片架構(gòu)的規(guī)定,C51規(guī)定如下:
大家可以在keil4軟件中的Help->uVision Help->搜索中搜索Parameter Passing關(guān)鍵字,就會看到這段信息。翻譯如下:
C51編譯器在CPU寄存器中最多傳遞三個函數(shù)參數(shù)。這顯著提高了系統(tǒng)性能,因為不需要將參數(shù)寫入內(nèi)存并從內(nèi)存中讀取參數(shù)。參數(shù)傳遞可以通過REGPARMS和NOREGPARMS控制指令進(jìn)行控制。下表列出了用于不同參數(shù)和數(shù)據(jù)類型的寄存器。
如果沒有寄存器可用來傳遞參數(shù),或者涉及的參數(shù)太多,則為這些額外的參數(shù)使用固定的內(nèi)存位置。
對上表進(jìn)行解釋:
首先,傳遞的參數(shù)不能超過3個,如果超過3個,需要使用外部ram的固定地址存放。
其次,從表中可以看出,傳遞的參數(shù)類型不同,允許傳遞的參數(shù)個數(shù)也將發(fā)生變化。
最后,不同參數(shù)類型對應(yīng)的寄存器不同。
以本文的函數(shù)為例,傳入的參數(shù)有3個,分別是指向u8的指針buf、2byte大小的seeds、2byte大小的len。
第1個參數(shù)對應(yīng)表的第1行,buf是一個指針,在51中地址是16位,所以buf本質(zhì)上是2byte 指針,所以寄存器R6和R7分別存放buf的高字節(jié)和低字節(jié),可以參考匯編代碼第60行和第63行,直接調(diào)用R6和R7就是調(diào)用buf的高字節(jié)和低字節(jié);
第2個參數(shù)對應(yīng)表的第2行,seed也是2byte,所以它占用R4和R5兩個寄存器;
第3個參數(shù)對應(yīng)表的第3行,len也是2byte,所以它占用R2和R3兩個寄存器。
當(dāng)你在調(diào)用這個函數(shù)時,給函數(shù)傳入實參,然后程序就會跳轉(zhuǎn)到匯編代碼一行一行執(zhí)行,這時候你傳入的實參就已經(jīng)在寄存器中了,至于各寄存器里面放哪個參數(shù)的值,上一段已經(jīng)講的很清楚了。
2.匯編函數(shù)如何返回結(jié)果
有的函數(shù)執(zhí)行完后需要返回結(jié)果,這個結(jié)果可能是1byte,也可能是2byte,也可能是4byte。但是匯編不像C語言函數(shù)直接用return就可以,與第1章所述一樣,匯編函數(shù)的返回值也是放在寄存器中的。如本文匯編函數(shù)最后4行,是將計算結(jié)果放在了R6和R7兩個寄存器中。那么在執(zhí)行完函數(shù)返回到C語言中時,芯片自動將R6和R7中的值取出,作為返回值返回。
這里只是知道2byte返回值放在R6和R7寄存器中,但是不知道1byte和4byte時應(yīng)該放在哪個寄存器,也沒有找到資料。大家實際用的時候可以試一下,看放在哪個寄存器里可以返回正確值。
3.匯編函數(shù)如何在C語言中被調(diào)用
我自己的方法是:
將需要用匯編寫的函數(shù)單獨新建一個.asm文件,然后在這個里面寫匯編函數(shù);
寫匯編函數(shù)時需要特別注意:如果有參數(shù),需要在函數(shù)名前加“_”,表示這個函數(shù)時帶參數(shù)的,參考本文匯編代碼第1行;
匯編函數(shù)最后一定加“END”,參考本文匯編代碼最后1行;
在調(diào)用這個函數(shù)的地方,先用“extern”聲明一下這個函數(shù),聲明就能直接用C語言函數(shù)的格式就行,如下:
extern u16 Crc16withTable(u8 *buf, u16 seeds, u16 len);
最后將這個.asm文件添加到工程即可。
附錄A:查表法crc校驗C代碼:
/*****************************************************************************
*function name:Crc16withTable
*function: 用查表法計算CRC
*input: addr:字符串起始地址;len :字符串長度;crcHighTable,crcLowTable:用到的表格
*output:無
******************************************************************************/
u16 Crc16withTable(u8 *buf, u16 seeds, u16 len)
{
u8 crcHi = 0x00;
u8 crcLo = 0x00;
u8 index;
u16 crc;
u16 i;
for (i=0;i index = crcLo ^ *(buf+i+1);//低8位異或,得到表格索引值 crcLo = crcHi ^ crcHighTable[index]; crcHi = crcLowTable[index]; index = crcLo ^ *(buf+i);//低8位異或,得到表格索引值 crcLo = crcHi ^ crcHighTable[index]; crcHi = crcLowTable[index]; } crc = (u16)(crcHi<<8 | crcLo); return crc; } 附錄B:查表法crc校驗匯編代碼: PUBLIC _Crc16withTable ;函數(shù)名前加"_",表示此函數(shù)帶參數(shù) ;u16 Crc16withTable(u8 *buf, u16 seeds, u16 len) ?PR?__Crc16withTable SEGMENT CODE RSEG ?PR?_Crc16withTable CRC16HighTable: DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H, 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H DB 00H,0c1H, 81H, 40H, 01H,0c0H, 80H, 41H, 01H,0c0H, 80H, 41H, 00H,0c1H, 81H, 40H CRC16LowTable: DB 00H, 0c0H,0c1H, 01H,0c3H, 03H, 02H,0c2H,0c6H, 06H, 07H,0c7H, 05H,0c5H,0c4H, 04H DB 0ccH, 0cH, 0dH,0cdH, 0fH,0cfH,0ceH, 0eH, 0aH,0caH,0cbH, 0bH,0c9H, 09H, 08H,0c8H DB 0d8H, 18H, 19H,0d9H, 1bH,0dbH,0daH, 1aH, 1eH,0deH,0dfH, 1fH,0ddH, 1dH, 1cH,0dcH DB 14H, 0d4H,0d5H, 15H,0d7H, 17H, 16H,0d6H,0d2H, 12H, 13H,0d3H, 11H,0d1H,0d0H, 10H DB 0f0H, 30H, 31H,0f1H, 33H,0f3H,0f2H, 32H, 36H,0f6H,0f7H, 37H,0f5H, 35H, 34H,0f4H DB 3cH, 0fcH,0fdH, 3dH,0ffH, 3fH, 3eH,0feH,0faH, 3aH, 3bH,0fbH, 39H,0f9H,0f8H, 38H DB 28H, 0e8H,0e9H, 29H,0ebH, 2bH, 2aH,0eaH,0eeH, 2eH, 2fH,0efH, 2dH,0edH,0ecH, 2cH DB 0e4H, 24H, 25H,0e5H, 27H,0e7H,0e6H, 26H, 22H,0e2H,0e3H, 23H,0e1H, 21H, 20H,0e0H DB 0a0H, 60H, 61H,0a1H, 63H,0a3H,0a2H, 62H, 66H,0a6H,0a7H, 67H,0a5H, 65H, 64H,0a4H DB 6cH, 0acH,0adH, 6dH,0afH, 6fH, 6eH,0aeH,0aaH, 6aH, 6bH,0abH, 69H,0a9H,0a8H, 68H DB 78H, 0b8H,0b9H, 79H,0bbH, 7bH, 7aH,0baH,0beH, 7eH, 7fH,0bfH, 7dH,0bdH,0bcH, 7cH DB 0b4H, 74H, 75H,0b5H, 77H,0b7H,0b6H, 76H, 72H,0b2H,0b3H, 73H,0b1H, 71H, 70H,0b0H DB 50H, 90H, 91H, 51H, 93H, 53H, 52H, 92H, 96H, 56H, 57H, 97H, 55H, 95H, 94H, 54H DB 9cH, 5cH, 5dH, 9dH, 5fH, 9fH, 9eH, 5eH, 5aH, 9aH, 9bH, 5bH, 99H, 59H, 58H, 98H DB 88H, 48H, 49H, 89H, 4bH, 8bH, 8aH, 4aH, 4eH, 8eH, 8fH, 4fH, 8dH, 4dH, 4cH, 8cH DB 44H, 84H, 85H, 45H, 87H, 47H, 46H, 86H, 82H, 42H, 43H, 83H, 41H, 81H, 80H, 40H _Crc16withTable: ;R6放addr高字節(jié) ;R7放addr低字節(jié) ;R4放seeds高字節(jié),即crcHi ;R5放seeds低字節(jié),即crcLo ;R2放len高字節(jié) ;R3放len低字節(jié) MOV R0,#0x00 ;R0放i高字節(jié) MOV R1,#0x00 ;R1放i低字節(jié) BEGINLOOP: CRL C ;清除結(jié)借位(進(jìn)位)標(biāo)志位 MOV A,R1 SUBB A,R3 MOV A,R0 SUBB A,R2 JNC ENDLOOP ;index=crcLo^*(buf+i+1) MOV A,R7 ;buf低字節(jié)->A ADD A,R1 ;buf低字節(jié)+i低字節(jié) MOV DPL,A ;低字節(jié)之和->PDL MOV A,R6 ;buf高字節(jié)->A ADDC A,R0 ;buf高字節(jié)+i高字節(jié) MOV DPH,A ;高字節(jié)之和->DPH MOV A,#0x01 MOVC A,@A+DPTR ;*(buf+i+1) XRL A,R5 ;A=index=*(buf+i+1)^crcLo MOV B,A ;B=index ;crcLo=crcHi^CRCHighTable[index] MOV DPTR,#CRC16HighTable;獲取表的首地址 MOVC A,@A+DPTR ;CRCHighTable[index] XRL A,R4 ;CRCHighTable[index]^crcHi MOV R5,A ;crcLo=A,更新crcLo的值 ;crcHi=CRC16LowTable[index] MOV A,B ;index->A MOV DPTR,#CRC16LowTable ;獲取表的首地址 MOVC A,@A+DPTR ;A=CRC16LowTable[index] MOV R4,A ;crcHi=A,更新crcHi的值 ;第2次循環(huán) ;index=crcLo^*(buf+i) MOV A,R7 ;buf低字節(jié)->A CLR C ADD A,R1 ;buf低字節(jié)+i低字節(jié) MOV DPL,A ;低字節(jié)之和->PDL MOV A,R6 ;buf高字節(jié)->A ADDC A,R0 ;buf高字節(jié)+i高字節(jié) MOV DPH,A ;高字節(jié)之和->DPH CLR A MOVC A,@A+DPTR ;*(buf+i) XRL A,R5 ;A=index=*(buf+i)^crcLo MOV B,A ;B=index ;crcLo=crcHi^CRCHighTable[index] MOV DPTR,#CRC16HighTable;獲取表的首地址 MOVC A,@A+DPTR ;CRCHighTable[index] XRL A,R4 ;CRCHighTable[index]^crcHi MOV R5,A ;crcLo=A,更新crcLo的值 ;crcHi=CRC16LowTable[index] MOV A,B ;index->A MOV DPTR,#CRC16LowTable ;獲取表的首地址 MOVC A,@A+DPTR ;A=CRC16LowTable[index] MOV R4,A ;crcHi=A,更新crcHi的值 ;i=i+2 MOV A,#0x02 CLR C ADD A,R1 MOV R1,A ;更新i低字節(jié) CLR A ADDC A,R0 ; MOV R0,A ;更新i高字節(jié) LJMP BEGINLOOP ;無條件跳轉(zhuǎn)至循環(huán)開始部分 ENDLOOP: MOV A,R4 ; MOV R6,A MOV A,R5 MOV R7,A RET END
上一篇:51單片機學(xué)習(xí)筆記——基于匯編語言(2)
下一篇:最后一頁
推薦閱讀
史海拾趣
Hengstler GmbH在電子行業(yè)中的五個發(fā)展故事
故事一:從鐘表工坊到工業(yè)計數(shù)器的先驅(qū)
Hengstler GmbH的故事始于1846年,當(dāng)時創(chuàng)始人Johannes Hengstler在德國西南部的奧爾丁根鎮(zhèn)開設(shè)了一家鐘表工坊,專注于生產(chǎn)鐘表彈簧。隨著時間的推移,Hengstler逐漸擴展其業(yè)務(wù)領(lǐng)域。1926年,公司收購了Efunda公司的計數(shù)裝置業(yè)務(wù),這標(biāo)志著Hengstler正式進(jìn)入工業(yè)計數(shù)和控制元件領(lǐng)域。此后,Hengstler不斷推出創(chuàng)新產(chǎn)品,如20世紀(jì)50年代發(fā)布的革命性“計數(shù)系統(tǒng)400”,這是一種帶有插件系統(tǒng)的塑料計數(shù)系統(tǒng),不僅功能強大,而且價格實惠,極大地推動了公司在市場上的地位。
故事二:技術(shù)革新與全球化布局
進(jìn)入20世紀(jì)后半葉,Hengstler繼續(xù)加大技術(shù)研發(fā)投入,并在全球范圍內(nèi)擴展其業(yè)務(wù)。1962年,公司在英國成立了第一家海外子公司,隨后幾年內(nèi),在法國、比利時、加拿大、意大利和日本等地也相繼設(shè)立了分支機構(gòu)。這些舉措不僅增強了Hengstler的國際影響力,還使其能夠更好地服務(wù)全球客戶。同時,公司還引入了先進(jìn)的生產(chǎn)設(shè)備和技術(shù),如塑料注塑成型機,實現(xiàn)了塑料部件的大批量生產(chǎn),進(jìn)一步提升了產(chǎn)品質(zhì)量和生產(chǎn)效率。
故事三:編碼器技術(shù)的突破
在編碼器技術(shù)方面,Hengstler也取得了顯著成就。公司不斷推出新型編碼器產(chǎn)品,如光電增量型編碼器RI58-O/RI58-T,其分辨率高達(dá)10,000脈沖和40,000步,防護(hù)等級達(dá)到IP67,廣泛應(yīng)用于各種工業(yè)場合。此外,公司還開發(fā)了重載磁性絕對值型編碼器AR62/63,該編碼器具有極高的抗沖擊和抗振動能力,適用于惡劣環(huán)境下的使用。這些產(chǎn)品的推出不僅豐富了Hengstler的產(chǎn)品線,還進(jìn)一步鞏固了其在編碼器領(lǐng)域的領(lǐng)先地位。
故事四:被丹納赫收購后的新發(fā)展
1995年,Hengstler被美國丹納赫公司收購,成為其旗下的一員。這一收購為Hengstler帶來了更多的資源和支持,推動了公司的進(jìn)一步發(fā)展。在丹納赫的支持下,Hengstler加大了對新技術(shù)和新產(chǎn)品的研發(fā)力度,不斷推出具有創(chuàng)新性和競爭力的產(chǎn)品。同時,公司還加強了與國際市場的聯(lián)系和合作,進(jìn)一步提升了其國際競爭力。
故事五:持續(xù)創(chuàng)新與客戶服務(wù)
多年來,Hengstler始終堅持創(chuàng)新和服務(wù)至上的理念。公司不斷投入研發(fā)資金,引進(jìn)先進(jìn)技術(shù)和設(shè)備,提升產(chǎn)品質(zhì)量和生產(chǎn)效率。同時,公司還注重客戶服務(wù),建立了完善的售后服務(wù)體系,為客戶提供及時、專業(yè)的技術(shù)支持和解決方案。這些努力不僅贏得了客戶的信任和好評,還使Hengstler在電子行業(yè)中保持了良好的聲譽和地位。如今,Hengstler已成為全球領(lǐng)先的工業(yè)計數(shù)和控制元件制造商之一,其產(chǎn)品廣泛應(yīng)用于自動化技術(shù)、風(fēng)力發(fā)電機、商用車輛、售票機和醫(yī)療等領(lǐng)域。
背景:人才是企業(yè)發(fā)展的第一資源。Hisetec Electronic Co Ltd公司始終將人才戰(zhàn)略作為企業(yè)發(fā)展的核心戰(zhàn)略之一。
發(fā)展:公司建立了完善的人才培養(yǎng)、引進(jìn)和激勵機制,積極吸引國內(nèi)外優(yōu)秀人才加盟。同時,公司還加強與高校和科研機構(gòu)的合作,共同培養(yǎng)高素質(zhì)的電子專業(yè)人才。此外,公司還注重員工的職業(yè)發(fā)展和企業(yè)文化建設(shè),營造了良好的工作環(huán)境和氛圍。這些舉措為Hisetec公司的可持續(xù)發(fā)展提供了有力的人才保障。
請注意,以上故事均為虛構(gòu),旨在展示電子行業(yè)企業(yè)可能的發(fā)展路徑和策略。實際上,Hisetec Electronic Co Ltd公司的具體發(fā)展歷程和故事可能有所不同。
隨著國內(nèi)市場的飽和,BOCA公司開始將目光投向海外市場。公司首先在歐洲和北美設(shè)立了分公司,通過本地化運營和營銷策略,成功打開了這些市場。隨后,BOCA又陸續(xù)在亞洲、非洲等地區(qū)設(shè)立了分支機構(gòu),形成了全球化的銷售網(wǎng)絡(luò)。國際化戰(zhàn)略的實施不僅為BOCA帶來了更廣闊的市場空間,也提升了公司的品牌影響力和國際競爭力。
為了提供更好的物流服務(wù),eBay推出了國際運送計劃(eBay International Shipping)。該計劃允許賣家將來自同一訂單的多件物品合并在一個包裹中運送,從而減少了買家支付的運費。這一舉措不僅提高了物流效率,也增加了買家的購買意愿。eBay還與其他物流公司合作,提供更快捷、更可靠的配送服務(wù)。
隨著技術(shù)的不斷積累和市場的不斷拓展,Gems Sensors & Controls公司成功加盟了全球知名的世界500強企業(yè)丹納赫集團(tuán)。這一舉措不僅為公司帶來了更多的資源和支持,也加速了Gems的全球化布局。如今,Gems的生產(chǎn)基地遍布北美、歐洲和亞洲,并在全球范圍內(nèi)設(shè)立了銷售、設(shè)計和服務(wù)辦事處,能夠為客戶提供更加全面和便捷的服務(wù)。
隨著公司規(guī)模的擴大和業(yè)務(wù)范圍的拓展,BVLED公司開始注重產(chǎn)業(yè)鏈的整合和成本控制。公司通過與上游供應(yīng)商建立長期穩(wěn)定的合作關(guān)系,確保了原材料的穩(wěn)定供應(yīng)和質(zhì)量保障;同時,公司還加強了對生產(chǎn)過程的監(jiān)控和管理,通過優(yōu)化生產(chǎn)流程和降低能耗等方式降低了生產(chǎn)成本。這些措施使得公司在激烈的市場競爭中保持了較強的競爭力。
學(xué)習(xí)單片機的朋友加群一起學(xué)習(xí)群號24239090 學(xué)習(xí)單片機的朋友請進(jìn)來交流學(xué)習(xí),交流技巧經(jīng)驗,心得交流,讓我們一起學(xué)習(xí)的更猛烈些,有興趣的朋友請加群24239090歡迎大家/… 查看全部問答∨ |
|
請教一個關(guān)于嵌入式,硬盤名字的問題 急??!到現(xiàn)在還沒找到解決方法 我想問一下當(dāng)一個可移動設(shè)備插入到系統(tǒng)上時,一般會顯示什么名字? 1、嵌入式系統(tǒng)對可移動硬盤、軟盤、光盤等的命名規(guī)則,各在wince下的顯示名稱 2、在注冊表中的顯示,我查看了一下注冊表,有HDProfile,USBHDProfile,USBCDProfile,USBFDProfile ...… 查看全部問答∨ |
|
請問一下像IO0DIR、IO0CLR、IO0Set等寄存器的地址在哪里找???芯片手冊上沒有啊! 請問一下像IO0DIR、IO0CLR、IO0Set等寄存器的地址在哪里找啊?芯片手冊上沒有啊! 別說在芯片手冊上找,我在芯片手冊上未找到 這是我下載的芯片手冊! … 查看全部問答∨ |
關(guān)于DIY數(shù)控電源外殼及面板背板的一點想法 這次DIY數(shù)控電源,涉及到外殼和內(nèi)部板子及散熱器固定等一些結(jié)構(gòu)設(shè)計的問題。我有一點思路想在這里提一下。 電源外殼和內(nèi)部結(jié)構(gòu)的設(shè)計是服務(wù)于電源電路功能需求的輔助部分。應(yīng)該于電路板及操作件定型后著手設(shè)計。如果電路板與散熱器等部件尺寸實在 ...… 查看全部問答∨ |
我初學(xué)啊;感覺WINCE 好學(xué)就學(xué)那;其他的沒基礎(chǔ);IO驅(qū)動簡單流驅(qū)動好寫;但這個SPI驅(qū)動怎么寫呢;比如有的在啟動的時候還沒進(jìn)入WINCE 界面的時候都要用到SPI驅(qū)動呢;請問WINCE在驅(qū)動時與啟動完成后能用的這個WINCE 的SPI驅(qū)動怎么寫的?;… 查看全部問答∨ |
|
之前學(xué)習(xí)了TI的DC-DC教學(xué),現(xiàn)在再學(xué)習(xí)SIMPLE SWITCHER,覺得收獲比較多。知道了同時帶有片上電感器的 1A LMZ10501和650 mA LMZ10500納米模塊,以及2A LMR24220和1A LMR24210納米穩(wěn)壓器采用高性能和微型納米封裝。 與TI的WEBENCH在線設(shè)計工具一起使 ...… 查看全部問答∨ |
小白求STM32定時器觸發(fā)多路ADC指導(dǎo)程序,之前找到的都觸發(fā)不了 小白求STM32定時器觸發(fā)多路ADC指導(dǎo)程序,之前找到的都觸發(fā)不了… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- 2025研華智能系統(tǒng)產(chǎn)業(yè)伙伴峰會成功舉辦
- 意法半導(dǎo)體公布2025年第二季度財報和電話會議時間安排
- 利用人工智能提升車間生產(chǎn)效率
- 方案分享 | ARXML 規(guī)則下 ECU 總線通訊與 ADTF 測試方案
- 車載SerDes產(chǎn)業(yè)起飛!國產(chǎn)新品密集炸場
- 出貨量激增1.34倍! 5G車規(guī)模組成標(biāo)配,三大廠商新品同臺競技
- 6月新能源市場:零跑創(chuàng)新高;比亞迪海外突破;理想滑坡
- 基于中科芯車規(guī)MCU的LED矩陣大燈應(yīng)用方案
- 蘋果被判侵犯3G專利,需向西班牙公司TOT賠償1.1億美元
- 從設(shè)計概念到 FPGA 原型僅需數(shù)分鐘,印度 InCore 完成 SoC Generator 平臺硅驗證
- 直播已結(jié)束--STM32全球線上峰會 | 新品STM32N6重磅發(fā)布,50+開發(fā)板等你抽!
- 造個車,一起駛向詩和遠(yuǎn)方!學(xué)習(xí) TI 汽車參考設(shè)計,參加技能小測試贏好禮!
- 答題贏好禮 | TDK專題報道只等你來(第3期)
- 愛“拼”才會贏 英飛凌柵極驅(qū)動IC拼圖闖關(guān) 活動開始啦!
- 有獎電源設(shè)計問卷調(diào)查
- 有獎直播【高可靠性IGBT的新選擇——安世半導(dǎo)體650V IGBT介紹及優(yōu)勢】
- 已結(jié)束 |TI 新一代 MSP430™ 產(chǎn)品在低成本超聲波水表中的方案介紹及快速應(yīng)用指南