做教學(xué)這幾年,我見過太多同學(xué)卡在C語言這道坎上。為啥?因為光是英文單詞就夠頭疼的——printf、scanf、void、int… 背單詞的時間比學(xué)邏輯的時間還長。
2023年前年直播的時候,有個同學(xué)突然問我:老師,你試過中文編程嗎?不用記英文單詞,直接寫中文就能控制硬件。我當時第一反應(yīng)是:編程怎么可能用中文?畢竟咱學(xué)C語言十幾年,早就習(xí)慣了英文邏輯。但后來仔細研究才發(fā)現(xiàn),中文編程真能給學(xué)不會C的同學(xué)打開新世界大門。
今天不聊高深概念,就用最直白的大實話聊聊,中文編程到底能干啥?咋能用它把硬件開發(fā)就變簡單了?
1. 為啥C語言勸退人?英語是道坎
舉個例子,你想讓單片機點亮一個LED燈。用C語言你得這么寫:
其實光是看懂reg52.h頭文件、void main()主函數(shù)、P1端口定義這些英文術(shù)語,新手就得查半天資料。而且還有0xFE這種十六進制操作,對零基礎(chǔ)的人來說簡直是從點燈到放棄。
中文編程咋做?中文編程天問,直接用中文描述你的需求,把復(fù)雜的代碼轉(zhuǎn)化成直觀的中文指令。比如說,用天問開發(fā)板控制LED燈,你不需要記“digitalWrite”或者“delay”這類英文函數(shù),只要在編程界面中寫下“循環(huán)執(zhí)行:引腳P5_5高電平→延時1000毫秒→引腳P5_5低電平→延時1000毫秒”,系統(tǒng)會自動生成底層代碼,所見即所得的方式。
2. 中文編程咋“說人話”?
中文編程的核心就一句話:用你熟悉的語言,表達你想做的事。
不用背單詞:比如“設(shè)置引腳電壓”代替digitalWrite()
邏輯更直觀:比如“如果溫度大于30度,就打開風(fēng)扇”直接寫成中文條件判斷
硬件交互像聊天:通過串口發(fā)送“讀取溫度”、“開啟電機”這樣的指令,硬件就能聽懂你說的話。
之前有個學(xué)員想用單片機做個避障項目,用C語言卡在超聲波傳感器代碼上兩周沒進展。后來用中文編程工具,直接拖拽“超聲波測距”模塊,設(shè)置“如果距離小于10厘米就停車”,兩天就把功能跑通了。
3. 給初學(xué)者的建議:
如果你現(xiàn)在還在因為C頭疼,碰都沒碰過單片機,可以試試“兩條腿走路”:
先用中文編程做項目:用中文編程天問接上STC開發(fā)板,先做出成果建立信心。
回頭對比看C代碼:中文編程工具可以生成的C代碼,生成的C代碼對照著你的中文邏輯,理解英文關(guān)鍵詞的含義。
重點突破核心概念:變量、循環(huán)、條件判斷這些邏輯是共通的,語言只是表達工具。
記?。壕幊痰暮诵氖?/span>解決問題,不是比拼誰記得英文單詞多。用中文先跑通邏輯,反而效率更高。
寫在最后
作為一個科班出身的程序員,我過去總覺得中文編程不夠?qū)I(yè)。但看到那么多同學(xué)因為英語卡在起點,甚至放棄學(xué)習(xí)編程、單片機,我才意識到,降低門檻不是妥協(xié),其實是給了更多人機會。
如果你也想試試,推薦幾個中文編程操作單片機的免費工具:
天問、米思齊、Linkboy、Mind+,都可以針對不同的芯片進行中文編程。
天問支持:語音識別,STC的全系,沁恒的arm級芯片,ESP32,更適合項目開發(fā)
米思齊:esp8266 物聯(lián)網(wǎng)
linkboy:兆易創(chuàng)新創(chuàng)新GD32 在線仿真
Mind+支持的是Arduino,等等
下次直播,我用天問中文編程帶大家做個聲控?zé)?/span>——不用寫一句英文代碼,感興趣的話,歡迎來直播間,咱們邊聊邊玩。