由任務內容可總結 本週任務需要的相關知識為串列埠通訊和舵機控制,重點在於理解串列埠中斷函式的邏輯過程和pwm波控制角度舵機方法。
以上內容在csdn上面有很多講解,故不再贅述
其實是我太懶了。
由任務描述可得 ,資料幀分為兩類,長度為7的和長度為6的。後面可以以此作為分類,有助於整理邏輯關係。
首先由串列埠接收資料並快取在陣列***usart_rx_buf***中。當判斷到資料成功被接收,則開始解析資料幀。
if
(usart_rx_sta&
0x8000
)//16進製制接收狀態標誌位
//如果接收成功,則第15位位置1
&8000是為了判斷第15位是否被置1 (接收成功)
接下來就是解析資料幀,因為頭兩幀都相同,無判斷價值,接下來就是第三幀,資料長度幀,由此幀可以將資料分為兩類(之前說過)。
t=usart_rx_buf[2]
;//儲存幀數,則待檢測的為t-3幀
if(t==6)
....
else..
..
接下來就是id了,由資料可知,每一類操作的id都不同,如led1 的id 位是0x01,舵機的是0x03,那麼則可以再次對操作進行分類
if
(usart_rx_buf[3]
==0x01).
..//led1
if(usart_rx_buf[4]
==0x02).
..//led2
if(usart_rx_buf[4]
==0x03).
..//舵機控制
思路已經很清晰,接下來就繼續
分類判斷1個或兩個資料幀以確認操作。
到此 。資料解析完畢。
任務指令中包含串列埠通訊的開啟和關閉,意味著指令只有在串列埠處於開啟狀態時才能接受命令。但是,在任務中,即使是接收開啟串列埠指令,也需要串列埠本身是開啟的
也就是說 串列埠需要全程處於開啟。那麼如何實現串列埠通訊的「虛擬關閉」呢?
這裡用到了乙個狀態標誌位的思想。當接收到指令時,如果標誌位不為1 ,那麼指令無效。
上位機對下位機含情脈脈,下位機對上位機愛理不理
相反:只有在標誌位置1時,指令才能能生效。
此時下位機高喊:「大爺來玩呀」
int flag=0;
if(flag==1)
//在串列埠開啟的情況下
而標誌位只能被那兩條特定指令操控,這樣就實現了虛擬串列埠的開啟和關閉狀態。
好像有點嘮叨。。。。**來人,上**!
if
(usart_rx_sta&
0x8000
)//如果接收成功
if(usart_rx_buf[3]
==0x0f
&&usart_rx_buf[4]
==0x0f
&&usart_rx_buf[5]
==0x24)if
(flag==1)
//在串列埠開啟的情況下
else}if
(usart_rx_buf[4]
==0x02
)else}}
else
printf
("串列埠未開啟\r\n");
//接收到了指令 但是串列埠此時沒有開啟,指令無效。
}else
if(usart_rx_buf[5]
==0x2d)if
(usart_rx_buf[5]
==0x3d)if
(usart_rx_buf[5]
==0x4d)}
else
printf
("串列埠未開啟\r\n");
}
兒童機械人程式語言 兒童程式設計機械人
機械人教育指學習機械人的基本知識與基本技能或利用教育機械人優化教育教學效果的理論與實踐。格物斯坦小坦克來講講機械人教育走進中小學,開發機械人教育功能和教育價值,對推進素質教育,培養中小學生的資訊素養和技術素養,提高中小學生的創新和實踐能力,具有重要的現實意義和戰略意義。學生們通過設計 組裝各種機械人...
發明導診機械人團隊 導診機械人品牌
智慧型形象 科技館的形象宣傳代言人,當講解員換成機械人,無需向參館者推薦介紹,自然而然吸引觀眾體驗,自帶宣傳效果,提公升展館形象。專業講解員 全面掌握館內展品專業知識,擁有規範化的講解技能,為參館者提供展品資訊展示 知識講解,節省人力成本的同時提公升講解效率 規範講解內容 提公升服務體驗。親和服務態...
靈寶機械人程式設計學校 南寧學機械人程式設計的學校
南寧學機械人程式設計的學校 可來南寧童程童美青少兒程式設計培訓學校,童程童美在南寧青秀區 西鄉塘區等開設校區,線下可學程式設計,線上也可學習,線上線下同步教學,方便家長選擇。南寧童程童美設有試聽課,歡迎廣大家長預約試聽!南寧童程童美凝聚美國上市公司17年程式設計教學經驗,專注3 18歲少兒程式設計教...