微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柟缁㈠枟閸庡顭块懜闈涘缂佺嫏鍥х閻庢稒蓱鐏忣厼霉濠婂懎浜惧ǎ鍥э躬婵″爼宕熼鐐差瀴闂備礁鎲¢悷銉ф崲濮椻偓瀵鏁愭径濠勵吅闂佹寧绻傚Λ顓炍涢崟顓犵<闁绘劦鍓欓崝銈嗙箾绾绡€鐎殿喖顭烽幃銏ゅ川婵犲嫮肖闂備礁鎲¢幐鍡涘川椤旂瓔鍟呯紓鍌氬€搁崐鐑芥嚄閼搁潧鍨旀い鎾卞灩閸ㄥ倿鏌涢锝嗙闁藉啰鍠栭弻鏇熺箾閻愵剚鐝曢梺绋款儏濡繈寮诲☉姘勃闁告挆鈧Σ鍫濐渻閵堝懘鐛滈柟鍑ゆ嫹04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝曢梻浣藉Г閿氭い锔诲枤缁辨棃寮撮姀鈾€鎷绘繛杈剧秬濞咃絿鏁☉銏$厱闁哄啠鍋撴繛鑼枛閻涱噣寮介褎鏅濋梺闈涚墕濞诧絿绮径濠庢富闁靛牆妫涙晶閬嶆煕鐎n剙浠遍柟顕嗙節婵$兘鍩¢崒婊冨箺闂備礁鎼ú銊╁磻濞戙垹鐒垫い鎺嗗亾婵犫偓闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗28闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閳╁啯鐝栭梻渚€鈧偛鑻晶鎵磼椤曞棛鍒伴摶鏍归敐鍫燁仩妞ゆ梹娲熷娲偡閹殿喗鎲奸梺鑽ゅ枂閸庣敻骞冨鈧崺锟犲礃椤忓棴绱查梻浣虹帛閻熴垽宕戦幘缁樼厱闁靛ǹ鍎抽崺锝団偓娈垮枛椤攱淇婇幖浣哥厸闁稿本鐭花浠嬫⒒娴e懙褰掑嫉椤掑倻鐭欓柟杈惧瘜閺佸倿鏌ㄩ悤鍌涘 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻閻愮儤鍋嬮柣妯荤湽閳ь兛绶氬鎾閻樻爠鍥ㄧ厱閻忕偛澧介悡顖氼熆鐟欏嫭绀€闁宠鍨块、娆戠磼閹惧墎绐楅梻浣告啞椤棝宕橀敐鍡欌偓娲倵楠炲灝鍔氭繛鑼█瀹曟垿骞橀懜闈涙瀭闂佸憡娲﹂崜娑㈡晬濞戙垺鈷戦柛娑樷看濞堟洖鈹戦悙璇ц含闁诡喕鍗抽、姘跺焵椤掆偓閻g兘宕奸弴銊︽櫌婵犮垼娉涢鍡椻枍鐏炶В鏀介柣妯虹仛閺嗏晛鈹戦鑺ュ唉妤犵偛锕ュ鍕箛椤掑偊绱遍梻浣筋潐瀹曟﹢顢氳閺屻劑濡堕崱鏇犵畾闂侀潧鐗嗙€氼垶宕楀畝鍕厱婵炲棗绻戦ˉ銏℃叏婵犲懏顏犵紒杈ㄥ笒铻i柤濮愬€ゅΣ顒勬⒒娴e懙褰掓晝閵堝拑鑰块梺顒€绉撮悞鍨亜閹哄秷鍏岄柛鐔哥叀閺岀喖宕欓妶鍡楊伓婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻鐔兼⒒鐎靛壊妲紒鐐劤椤兘寮婚敐澶婄疀妞ゆ帊鐒﹂崕鎾绘⒑閹肩偛濡奸柛濠傛健瀵鈽夐姀鈺傛櫇闂佹寧绻傚Λ娑⑺囬妷褏纾藉ù锝呮惈灏忛梺鍛婎殕婵炲﹤顕f繝姘亜闁惧繐婀遍敍婊堟⒑闂堟稓绠冲┑顔炬暬閹﹢宕奸姀銏紲闂佺粯鍔﹂崜娆撳礉閵堝棎浜滄い鎾跺Т閸樺鈧鍠栭…閿嬩繆閹间礁鐓涢柛灞剧煯缁ㄤ粙姊绘担鍛靛綊寮甸鍌滅煓闁硅揪瀵岄弫鍌炴煥閻曞倹瀚�
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 基于NUC472开发板的机智云功能板控制(兼结题报告)

基于NUC472开发板的机智云功能板控制(兼结题报告)

时间:10-02 整理:3721RD 点击:

    在NUC472开发板上配有Arduino接口,若以该接口与机智云的功能板相配合,则可以有效地拓展该开发板的功能。就目前来讲,对机智云功能板提供支持的核心底板有两种,一种是基于STM32F103的,另一种则是基于ATMEGA328的。以NUC472开发板来支持机智云功能板则可以增加一种对其进行支持的核心底板。  

就机智云功能板来说,它提供了RGB_LED、小电机、红外感应器、小按键、温湿度传感器、WIFI模块及OLED接口等,如图1所示。这里仅对RGB_LED、小电机、红外感应、小按键及OLED接口的使用加以介绍。

此外,配合片内的RTC、UART、A/D等资源,还实现了RTC电子时钟、串行通讯及A/D采集等功能。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图1 机智云功能板


    要对机智云功能板进行编程,主要涉及各引脚的关系构建、GPIO口输入/输出功能的设置及高低电平输出语句的定义、输入电平的读取与判别、脉冲信号与时序的模拟等。

为了便于理解,这里按由简单到复杂的顺序来进行。

1.小电机

      功能板上提供了一个小直流电机,其接口电路如图2所示。它是通过L9110进行驱动,当在IA和IB两端施加相异的电平时,就可控制电机的正反转。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图2  电机电路


电机与NUC472的连接关系为:

IA-PC11      

IB-PC10


小电机的初始化函数为:


  1. void MODER_init(void)
  2. {
  3.     GPIO_SetMode(PC, BIT11, GPIO_MODE_OUTPUT);  //  IA
  4.     GPIO_SetMode(PC, BIT10, GPIO_MODE_OUTPUT);  //  IB
  5.    PC10 = 0;
  6.    PC11 = 0;
  7. }

复制代码

  使用如下高低电平输出语句即可使电机转动,互换高低电平即可实现反向转动。      

  PC11 = 1;      //输出高电平

  PC10 = 0;        //输出低电平

2.小按键

利用板载的小按键,可进行相应功能的控制,其电路如图3所示。



闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图3  按键电路


按键与NUC472的连接关系为:

KEY1- PA10   

KEY2- PA9

按键的初始化函数为:

  1. void KEY_init(void)
  2. {     // K1、K2
  3.   GPIO_SetMode(PA, BIT10, GPIO_MODE_INPUT);   //  KEY1
  4.   GPIO_SetMode(PA, BIT9, GPIO_MODE_INPUT);    //  KEY2
  5. }  

复制代码


  K2键控制电机转动的语句如下:

PC10 = 0;

if (PA9 != 1)    //  K2

{

     PC10 = 1;   //  MODOR

}

else

{

     PC10 = 0;

}


3.红外感应

板载的红外感应器是用于避障控制的,其电路如图4所示。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图4  红外感应电路


    电路的作用作用为:在TCRT5000的一端是一个可发出红外光的二极管,另一端是一个接受器。在无遮挡的情况下,受到照射使电路导通并在AOUT端输出低电平。在LM393的电路中,其作用是充当一个AOUT与电位器设定电位的比较器,以产生阀值开关的效果。当IR_OUT为低电平时,LED2被点亮,否则被熄灭。通过采集IR_OUT的状态即可启动感应开关的作用。

IR_OUT与NUC472的连接关系为:

IR_OUT - PF9

  IR_OUT的初始化函数为:

  void IR_init(void)

  {

        GPIO_SetMode(PF, BIT9, GPIO_MODE_INPUT);    //  IR-OUT

  }

以IR控制电机正反转的语句如下:

          if (PF9 != 1)

          {

               PC11 = 1;

               PC10 = 0;

          }

          else

          {

               PC11 = 0;

               PC10 = 1;

          }

         

4.RGB_LED

    通常RGB_LED的使用是无需外围驱动电路的,故使用起来十分简单,只需输出高低电平即可控制其点亮与否。然而在机智云的功能板上却是以P9813来驱动和控制RGB_LED,其接口电路如图5所示。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...


图5  RGB_LED接口电路


    那使用P9813又有何特别之处呢?其主要用途在于,可以串行方式来传送控制信号,并起到控制RGB亮度的作用。而通常情况下,这是需要通过PWM来实现的。在信号传送过程中,是通过32个脉冲信号来把控制数据传递到P9813中,再由RGB引脚加以输出来控制RGB_LED。

P9813与NUC472的连接关系为:

A0-PE1        

SCL- PD10   

SDA-PD12

RGB_LED的初始化函数为:

  1. void RGB_init(void)
  2. {
  3.   GPIO_SetMode(PD, BIT12, GPIO_MODE_OUTPUT);  //  SDA
  4.   GPIO_SetMode(PD, BIT10, GPIO_MODE_OUTPUT);  //  SCL
  5.   GPIO_SetMode(PE, BIT1, GPIO_MODE_OUTPUT);   //  A0
  6.   PE1 = 0;
  7. }

复制代码


RGB_LED的控制函数如下:

  1. void RGB_Write_Data(uint8_t R,uint8_t G,uint8_t B)
  2. {
  3.   uint32_t RGB_Data = 0;
  4.   uint8_t i;
  5.   RGB_Data |= 0xC0000000;
  6.   RGB_Data |= ((uint32_t)((~B) & 0xc0)) << 22;
  7.   RGB_Data |= ((uint32_t)((~G) & 0xc0)) << 20;
  8.   RGB_Data |= ((uint32_t)((~R) & 0xc0)) << 18;
  9.   RGB_Data |= ((uint32_t)B) << 16;            
  10.   RGB_Data |= ((uint32_t)G) << 8;
  11.   RGB_Data |= R;
  12.   for (i=0;i<32;i++)
  13.   {
  14.        if((RGB_Data & 0x80000000) != 0)
  15.        {
  16.          SDA_1;
  17.        }
  18.        else
  19.        {
  20.          SDA_0;
  21.         }
  22.        RGB_Data <<= 1;
  23.         SCL_0;
  24.         SCL_0;
  25.         SCL_1;
  26.         SCL_1;
  27.    }
  28.    SDA_0;         
  29.    for (i=0;i<32;i++)
  30.    {
  31.            SCL_0;
  32.            SCL_0;
  33.           SCL_1;
  34.           SCL_1;
  35.    }        
  36. }

复制代码


实现呼吸灯的程序为:

      uint8_t i=0;

      RGB_init();

      PE1 = 1;

      RGB_Write_Data(0x00,0x00,0x00);

      for (i=0;i<125;i++)

      {

           RGB_Write_Data(0x00,0x00,i);

           delay_1ms(20);

      }

      for (i=125;i>0;i--)

      {

            RGB_Write_Data(0x00,0x00,i);

            delay_1ms(20);

      }

      for (i=0;i<125;i++)

      {

            RGB_Write_Data(0x00,0x00,i);

            delay_1ms(20);

      }

      for (i=125;i>0;i--)

      {

            RGB_Write_Data(0x00,0x00,i);

            delay_1ms(20);

      }

            

实现色彩环的程序如下:

while(1)

{

        RGB_Write_Data(120,0x00,0x00);

        RGB_del(5);

        RGB_Write_Data(0x00,120,0x00);

        RGB_del(5);

        RGB_Write_Data(0x00,0x00,120);

        RGB_del(5);

        RGB_Write_Data(120,120,0x00);

        RGB_del(5);

        RGB_Write_Data(0x00,120,120);

        RGB_del(5);

        RGB_Write_Data(120,0x00,120);

        RGB_del(5);

        RGB_Write_Data(120,120,120);

        RGB_del(5);        

        RGB_Write_Data(0x00,0x00,0x00);

        RGB_del(5);        

}

RGB_LED的显示效果如图6所示。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图6  RGB_LED显示效果


使用红外感应器作为感应提示器的语句如下:

if (PF9 != 1)      // IR

{

       RGB_Write_Data(120,0x00,0x00);   

}

else

{

       RGB_Write_Data(0x00,120,0x00);  

}

实现感应提示的效果如图7所示。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图7  未遮挡状态


5.OLED接口

    在功能板上提供了OLED接口,该接口适用于SPI接口的演示屏,其引脚分配如图8所示。由于LCD5110屏使用的十分广泛,故这里以该接口实现LCD5110屏的显示。由于两者的接口并不完全一致,因此需要稍加修改,具体的做法是将GND与NC引脚连接,来为LCD5110的SCE引脚提供片选信号。其它引脚只需修改引脚定义即可。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图8 OLED接口


LCD5110屏与NUC472的连接关系为:

CS---GND

RST---PD2

D/C---PD0

SDIN--PD3

SCLK--PD6

LED+--PD7

LCD5110各引脚输出高低电平的定义语句如下:


#define  SetLCD_RST_High()          PD2 = 1;

#define  SetLCD_RST_Low()           PD2 = 0;

#define  SetLCD_DC_High()           PD0 = 1;

#define  SetLCD_DC_Low()            PD0 = 0;

#define  SetLCD_SDIN_High()         PD3 = 1;

#define  SetLCD_SDIN_Low()          PD3 = 0;

#define  SetLCD_SCLK_High()         PD6 = 1;

#define  SetLCD_SCLK_Low()          PD6 = 0;

LCD5110的引脚配置函数如下:

  1. void GPIO_Configuration(void)
  2. {
  3.     GPIO_SetMode(PD, BIT0, GPIO_MODE_OUTPUT);
  4.     GPIO_SetMode(PD, BIT2, GPIO_MODE_OUTPUT);
  5.     GPIO_SetMode(PD, BIT3, GPIO_MODE_OUTPUT);
  6.     GPIO_SetMode(PD, BIT6, GPIO_MODE_OUTPUT);
  7.     GPIO_SetMode(PD, BIT7, GPIO_MODE_OUTPUT);
  8. }

复制代码

  1. void LCD_init(void)
  2. {
  3.     SetLCD_RST_Low();   
  4.     delay_1us();
  5.     SetLCD_RST_High();   
  6.     delay_1us();
  7.     delay_1us();
  8.     LCD_write_CMD(0x21);
  9.     LCD_write_CMD(0xc0);
  10.     LCD_write_CMD(0x06);
  11.     LCD_write_CMD(0x13);
  12.     LCD_write_CMD(0x20);
  13.     LCD_Clear();           
  14.     LCD_write_CMD(0x0c);
  15. }

复制代码

  1. int main(void)
  2. {
  3.     GPIO_Configuration();
  4.     PD7 = 1;   
  5.     LCD_Init();
  6.     LCD_Clear();
  7.     LCD_write_english_string(2,0,"NUC472 +");
  8.     LCD_write_hanzi(2,3,6);
  9.     LCD_write_hanzi(14,3,7);
  10.     LCD_write_hanzi(26,3,8);
  11.     LCD_write_hanzi(38,3,9);
  12.     LCD_write_hanzi(50,3,10);
  13.     LCD_write_hanzi(62,3,11);
  14. }

复制代码


其它驱动LCD110屏显示的函数基本无需变化,运行后的显示效果如图9所示。


闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨奸柟鐧哥秮閺岋綁顢橀悙鎼闂侀潧妫欑敮鎺楋綖濠靛鏅查柛娑卞墮椤ユ艾鈹戞幊閸婃鎱ㄩ悜钘夌;婵炴垟鎳為崶顒佸仺缂佸鐏濋悗顓熶繆閵堝繒鍒伴柛鐕佸亞缁鈽夊Ο蹇撶秺閺佹劙宕ㄩ璺攨缂傚倷绀侀鍕嚄閸撲焦顫曢柟鎹愵嚙绾惧吋鎱ㄥ鍡楀幋闁稿鎹囬幃婊堟嚍閵夈儮鍋撻崸妤佺叆闁哄洦姘ㄩ崝宥夋煙閸愯尙鐒告慨濠勭帛閹峰懘宕ㄦ繝鍌涙畼闂備浇宕甸崰鍡涘磿閹惰棄绠查柕蹇曞濞笺劑鏌嶈閸撴瑩顢氶敐鍡欑瘈婵﹩鍘兼禍婊呯磼閻愵剙顎滃瀛樻倐瀵煡顢楅崟顑芥嫼闂佸湱枪濞撮绮婚幘瀵哥閻犲泧鍛煂闁轰礁鐗婃穱濠囧Χ閸涱喖娅ら梺绋款儌閸撴繄鎹㈠┑鍥╃瘈闁稿本绋戝▍锝咁渻閵堝繒鍒伴柕鍫熸倐楠炲啯绂掔€e灚鏅┑鐐村灦钃遍悹鍥╁仱濮婅櫣鎷犻垾铏亶闂佽崵鍣︽俊鍥箲閵忕姭鏀介悗锝庝簽閸婄偤姊洪棃娴ゆ盯宕橀妸銉喘婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾捐銇勯弽顐粶闁绘帒鐏氶妵鍕箳閹存繍浠肩紒鐐劤椤兘寮婚悢鐓庣鐟滃繒鏁☉銏$厽闁规儳顕ú鎾煙椤旂瓔娈滈柡浣瑰姈閹棃鍨鹃懠顒佹櫦婵犵數濮幏鍐礃椤忓啰椹抽梻渚€鈧稓鈹掗柛鏂跨Ф閹广垹鈹戠€n亜绐涘銈嗘礀閹冲秹宕Δ鍛拻濞达絽鎲$拹锟犳煙閾忣偅灏甸柍褜鍓氬銊︽櫠濡や胶鈹嶅┑鐘叉搐缁犵懓霉閿濆牆鈧粙濡搁埡鍌滃弳闂佸搫鍟犻崑鎾绘煕鎼达紕锛嶇紒杈╁仱楠炴帒螖娴e弶瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閸曨剛鍘甸梺鎯ф禋閸嬪懎鐣峰畝鈧埀顒冾潐濞叉粓寮拠宸殨濞寸姴顑愰弫鍥煟閹邦収鍟忛柛鐐垫暬濮婄粯鎷呴懞銉с€婇梺闈╃秶缁犳捇鐛箛娑欐櫢闁跨噦鎷�...

图9  LCD5110屏显示效果

  

结语:

鉴于NUC472的资料相对较少,这里仅以机智云功能板的应用为题对NUC472开发板的应用进行了一定深度的探索,积累了一定的使用经验。相对来讲NUC472使用起来还是比较易于上手的,板上资源相对于黑色的NuTiny-SDK-NUC472也要丰富些,以后的探索方向是解决I2S的语音录放问题。


小编的这个帖子很干货
能发在机智云社区吗?  让更多机友看到

可能有问题,因为用的是本论坛的试用板,论坛有规定不允许在其它地方发帖的。

小编这个厉害了

干货满满   学习了

多些支持!

感谢支持与鼓励!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top