完整的S32K144的學習彙總如下:
https://github.com/GreyZhang/g_s32k144
繼續S32K144的學習,這次來看看CAN的FIFO接收模式。FIFO的功能是使用多個buffer級聯,組成一個隊列的方式實現隊列的報文接收。使用FIFO,可以讓驅動軟件設計更加簡潔。同時,FIFO在接收的能力上也是很強的,可以讓我們在後期軟件處理上有更多的設計嘗試。
配置S32K144的FIFO功能比較簡單,直接在SDK配置界面中使能即可。
接下來,進行接收掩碼錶的設置。
這樣,可以讓軟件接收8個擴展幀的報文,ID數值爲1~8。
爲了方便觀察,我在軟件中通過串口將接收到的報文打印出來。上面是報文ID爲5的擴展幀被接收到的狀態。
以上是簡單的測試代碼。
經過測試,報文0~10。除了我們設置的1~8的擴展幀都無法接收。跟預期的相符,其他的ID無法接收。
在增加一組對比測試,看看對標準幀的是被情況。代碼只需要做如下修改:
重新測試,也只有8個標準幀的報文可以被接收到。
以上算是今天對S32K144 CAN FIFO接收的一個初步的認識,這還很不滿足一般的工程應用。即使是filter table擴充到128個,也算不上是很靈活。雖然,128個的table接收也能夠滿足很多工程需要。下一次,我們嘗試做一下對全部ID報文的無差異接收。
今天有事過得比較焦慮的一天,跟曾經一個老同事做了一下交流。一個讓人感覺謙虛務實的一個高級工程師,也讓我曾經從他身上學到了很多東西。所謂見賢思齊,我覺得我應該向他學習。很多人都提到過中年焦慮,我今年33歲,也到了這個焦慮的階段了。不敢想,轉眼間,我很快會到35歲,時光非常狠!
“時光,憑你多狠!我的愛在我的詩裏將萬古長青!”祝願看到我學習筆記的人,擁有詩一樣的生活,讓愛在生活中萬古長青!
完整的S32K144的學習彙總如下: