我想在18F系列PIC上使用SPI1作爲主控器,然後使用同一PIC上的SPI2作爲另一個PIC的從器件?這可以做到嗎?使用PIC18F25K22作爲主控器件和從器件同時使用SP1和SPI2
0
A
回答
1
是的,它可以。事實上,如果你被迫以相同的方式使用它們,那麼提供兩個串行模塊就沒有多大意義。
因爲它說,在the datasheet:
注意,每個工作獨立於其他。此外,在SPI模式下,每個模塊:
你可以看到,無論是主從模式的支持。
每個MSSP模塊都有自己的一組寄存器,用於根據需要配置每個模塊。
0
我也使用了AD7793,但是我推出了自己的SPI_READ和SPI_WRITE宏。這些宏在16位處理器上工作,也許在32位上(我還沒有嘗試過)。傳遞的第一個參數是SPI端口號(例如1或2)。他們工作在奴隸和主人模式。
例如SPI_WRITE(1,'H');或SPI_READ(2,char_to_send,char_to_receive_data);
#define _SPI_WRITE_final(_SPIBUF, _SPIRBF, _SPIROV, ch) \
_SPIROV = 0; \
while (_SPIRBF) \
__asm__ volatile ("mov %0, w0" : : "g"(_SPIBUF) : "cc", "w0"); \
_SPIBUF = (uint8_t)(ch); \
__asm__ volatile ("nop"); \
while (!_SPIRBF);
#define _SPI_WRITE_int(bus, ch) \
_SPI_WRITE_final(SPI##bus##BUF, SPI##bus##STATbits.SPIRBF, \
SPI##bus##STATbits.SPIROV, ch)
#define _SPI_WRITE(bus, ch) do {_SPI_WRITE_int(bus, ch);} while(0)
#define _SPI_READ_final(_SPIBUF, _SPIRBF, _SPIROV, ch_out, ch_in) \
_SPIROV = 0; \
while (_SPIRBF) \
__asm__ volatile ("mov %0, w0" : : "g"(_SPIBUF) : "cc", "w0"); \
_SPIBUF = (uint8_t)(ch_out); \
__asm__ volatile ("nop"); \
while (!_SPIRBF); \
ch_in = _SPIBUF;
#define _SPI_READ_int(bus, ch_out, ch_in) \
_SPI_READ_final(SPI##bus##BUF, SPI##bus##STATbits.SPIRBF, \
SPI##bus##STATbits.SPIROV, ch_out, ch_in)
#define _SPI_READ(bus, ch_out, ch_in) do {_SPI_READ_int(bus, ch_out, ch_in);} while(0)
+0
太好了,謝謝!我現在正在使用一個8位PIC,但會很好的看看這段代碼。 –
相關問題
- 1. 使用NETMF的SPI主器件到PIC18F4550從器件同步(C18)
- 2. ASP.net服務器控件和使用AjaxcontrolToolkit
- 3. Xcode - 如何使主控和細節控制器同時顯示?
- 4. 爲grails同時使用cxf客戶端和服務器插件
- 5. 使用控制器和VM
- 6. 什麼時候在ASP.NET中使用html控件和服務器控件..?
- 7. 同時使用調試器和curses?
- 8. 同時使用耳機和揚聲器
- 9. Windows Mobile - 使用計時器控件
- 10. EF核心:同時使用ID作爲主鍵和外鍵
- 11. 如何同時使用Omniauth_callbacks控制器和定製設計註冊控制器
- 12. 從另一個控制器使用控制器CodeIgniter和HMVC
- 13. 何時使用控制器在使用Ember組件時使用組件
- 14. 使用視圖控制器既作爲模式視圖控制器和作爲標籤欄視圖控制器
- 15. 使用RequireJS和.NET控件時的Scripterror
- 16. 無法使用虛擬杆和遠程控制器同時
- 17. 如何從主控制器中使用NSMutableArray詳細控制器
- 18. 使用CookieContainer和WebBrowser控件?
- 19. 如何使用Xamarin.Form控件和本機控件在同一頁
- 20. 使用WiFi和Android手機作爲控制器的監控移動機器人
- 21. Grails的urlMappings動作和控制器行爲不使用控制器邏輯
- 22. 自定義控件和Visual Studio 2008 SP1
- 23. 使用當前的Subversion從服務器作爲主服務器
- 24. 同時使用jquery.js和scriptaculous.js文件?
- 25. 爲什麼symfony 2同時使用'deps'文件和'composer.json'文件?
- 26. 從不同的控制器使用ViewBag?
- 27. 使用MVC路由從URL中刪除控制器和動作
- 28. 如何使用本地主機從服務器使用文件?
- 29. 使用本地主機和服務器名稱時的不同行爲
- 30. 控件使用XP主題
謝謝,當使用模擬器件的AD7793時,我有一些問題,製造商提供的源文件有SPI_read和SPI_write函數。當我初始化SPI1_Init_Advanced以及SPI2時,main.c程序停止工作。只要有人被註釋掉,它就會重新開始工作(所有硬件連接正確) –