要讓 ENC28J60+UIP1.0 TCI/IP Stack 接收 UDP 廣播封包的方式…
一、UIP 修改 configure 檔 uip-conf.h
#define UIP_CONF_BROADCAST 1
二、ENC28J60 的部份在設定 FILTER 時要禁用 FILTER。
不接收廣播訊息要設定如下,找到設置 FILTER 的程式碼,mark 掉才能聽廣播…
//接收過濾器
//UCEN:單播過濾器使能位
//當ANDOR = 1 時:
//1 = 目標地址與本地MAC 地址不匹配的數據包將被丟棄
//0 = 禁止過濾器
//當ANDOR = 0 時:
//1 = 目標地址與本地MAC 地址匹配的數據包會被接受
//0 = 禁止過濾器
//CRCEN:後過濾器CRC 校驗使能位
//1 = 所有CRC 無效的數據包都將被丟棄
//0 = 不考慮CRC 是否有效
//PMEN:格式匹配過濾器使能位
//當ANDOR = 1 時:
//1 = 數據包必須符合格式匹配條件,否則將被丟棄
//0 = 禁止過濾器
//當ANDOR = 0 時:
//1 = 符合格式匹配條件的數據包將被接受
//0 = 禁止過濾器
enc28j60Write(ERXFCON, ERXFCON_UCEN|ERXFCON_CRCEN|ERXFCON_PMEN);
enc28j60Write(EPMM0, 0x3f);
enc28j60Write(EPMM1, 0x30);
enc28j60Write(EPMCSL, 0xf9);
enc28j60Write(EPMCSH, 0xf7);
三、UIP 建立 Connection…
uip_ipaddr_t ipaddr;
struct uip_udp_conn * conn;
uip_ipaddr( ipaddr, 0, 0,0, 0 );
conn = uip_udp_new( &ipaddr, HTONS( 0 ) );
if( conn != NULL )
uip_udp_bind( conn, HTONS( MY_UDP_PORT ) );
訂閱:
張貼留言 (Atom)
更高效處理 micro second 的方式
更高效處理 micro second 的方式… 以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) { HAL_IncTick(); sys_tick += (SysTi...
-
rails blog -d mysql 建立一個名為 blog 的網站app,使用 mysql cd blog 進去 gen 好的網站 config/database.yml 編輯資料庫設定 rake db:create 自動建立資料庫 ruby script/generate ...
-
https://github.com/ljean/modbus-tk/ install pip… sudo apt-get install python-pip install... download modbus_tk-x.x.x.tar.gz tar zxvf...
-
DMX protocol… # 1:break + 1:start + 512:channel python: import serial class DMX512: def __init__(self, port): self.seria...
沒有留言:
張貼留言