»ùÓÚstm32ƽ̨freertosµÄζÈÊý¾Ý²É¼¯ÏµÍ³´óѧÂÛÎÄ ÏÂÔØ±¾ÎÄ

µÚ2Õ ×ÜÌåÉè¼Æ

2.1Êý¾Ý²É¼¯Æ÷¼ò½é

Êý¾Ý²É¼¯Ö÷Òª¶ÔÍâ½ç»·¾³ÐÅÏ¢¾­¹ýÒ»¶¨µÄÊֶβɼ¯Êý¾Ý£¬²É¼¯µÄÊý¾Ý¿ÉÒÔÊÇζȡ¢µçѹ¡¢µçÁ÷µÈµÈ¡£ËüÖ÷ÒªÑо¿ÐÅÏ¢Êý¾ÝµÄ²É¼¯¡¢´¦Àí¼°´æ´¢¡£ËüºÍÏÔʾϵͳҲÃܲ»¿É·Ö£¬ËüÒÔÐÅϢΪ»ù±¾µ¥Î»£¬Í¨¹ýÐÅϢת»»ÎªÄܹ»Ê¶±ðµÄÐźţ¬¸ÃÐźÅͨ¹ý´¦Àí½øÐвâÁ¿ºÍ´¦Àí¡£±¾×¨ÒµÖ÷ÒªÒÔǶÈëʽΪÖÐÐÄ£¬Ñо¿µçÐźŵÄÊý¾Ý²É¼¯£¬ËüÊÇÒ»ÃÅ×ÛºÏÐÔ¼¼Êõ¡£Ëæ×ÅÉç»á²»¶ÏµÄ½ø²½£¬Ç¶Èëʽ¼¼ÊõÔÚ¹¤Òµ¿ØÖÆ£¬¼ì²â¡¢¹ÜÀíµÈ·½·½ÃæÃæ¶¼Éæ¼°µ½ÁË¡£Êý¾Ý²É¼¯ºÍÏÔʾϵͳµÄÈںϣ¬Äܹ»ÊµÊ±½øÐвɼ¯£¬×Ô¶¯´æ´¢£¬ÊµÏÔʾ£¬ÎªÏÖ³¡Êý¾ÝµÄÕæÊµÐÔ¡¢ÓÐЧÐÔ¡¢ÊµÊ±ÐÔ¡¢¿ÉÓÃÐÔÌṩ±£Ö¤¡£

Ŀǰ£¬Êý¾Ý²É¼¯ÏµÍ³°´ÕÕÓÃ;£¬Õý³¯ÏòÁ½¸ö·½Ãæ·¢Õ¹£¬Ò»·½ÃæÎª·Öɢϵͳ£¬Í¨¹ý×ÜÏߵķ½Ê½£¬°Ñ¸÷¸ö²É¼¯µã£¬°²×°µ½¸÷¸ö²»Í¬µÄµØ·½£¬È»ºóͨ¹ýÒ»¸ö¼¯³É¿ØÖƽøÐÐÊý¾Ý²É¼¯£¬ÕâÖÖ·½Ê½²É¼¯Êý¾ÝÁé»î¡£ÁíÒ»ÖÖΪ¼¯³ÉÊý¾Ý²É¼¯£¬ÕâÖÖ·½Ê½ÒԸ߶˵ÄǶÈëʽ΢´¦ÀíÆ÷ºÍǶÈëʽʵʱ²Ù×÷ϵͳΪºËÐÄ£¬¼¯ÖжÔÊý¾Ý½øÐвɼ¯£¬Èç¼à¿ØÉãÏñͷͼÏñ²É¼¯£¬Êý¾Ý²É¼¯Æ÷ÄÚ×°ÓÐÒ»¸öǶÈëʽ²Ù×÷ϵͳ£¬Ó¦ÓóÌÐòÔÚ²Ù×÷ϵͳÉ϶ÀÁ¢¿ª·¢¡£

2.2´«¸ÐÆ÷Ñ¡ÐÍ

Ëæ×ſƼ¼µÄ²»¶Ï½ø²½£¬Î¶ȲâÁ¿·½ÃæµÄ´«¸ÐÆ÷Ò²²ã³ö²»Çµ«¹é¸ùµ½µ×Ö÷ÒªÊÇÁ½ÖÖ£¬Ò»ÖÖÊÇÊý×Öʽ£¬Ò»ÖÖÊÇÄ£Äâʽ¡£Ê¹ÓÃÄ£ÄâʽµÄζȲâÁ¿µç·ÖУ¬Ò»°ãÊÇͨ¹ýÈÈÃô¸Ðµç×裬ÕâÖÖµç×èËæ×ÅζȵÄÉÏÉý£¬Ê¹µÃµç×èÖµÒ²Ëæ×ÅζÈÖµÉÏÉý¶ø¼õС£¬È»ºó²ÉÓõç×è·Öѹ»òÕßµçÁ÷È¡ÑùµÈ£¬»ñȡģÄâÐźţ¬¾­¹ýµ÷Àíµç··Å´óºÍÏßÐÔ·´À¡²¹³¥µÈµÈ£¬Êä³öµ½ADת»»Æ÷£¬Í¨¹ýÊý×Ö´¦ÀíÆ÷½øÐд¦Àíºó£¬°´ÕÕÈÈÃôµç×èµÄÌØÐÔ£¬´Ó¶ø²âÁ¿³öζÈÏÔʾ¡£ÕâÖÖ·½Ê½£¬ÔÚÉè¼ÆÊ±£¬ÐèҪʹÓÃADת»»ºÍÄ£Äâµç·¡£ÕâÖÖ·½Ê½µ÷ÊÔÂé·³£¬¶ø´«Í³µÄζȼì²âµç·»ù±¾ÒÔÈÈÃôµç×èΪζȴ«¸ÐÆ÷¡£ÓÉÓÚÈÈÃôµç×è²âÁ¿µÄζȷ¶Î§µÍ£¬¿É¿¿ÐԲ²»Ò×µ÷ÊÔ£¬¶øÇÒ±ØÐë¾­¹ýÊý¾ÝÐźŴ¦Àíºó£¬²ÅÄÜÈÃCPUʶ±ð£¬ÔÚ¸ßÒªÇóµÄζȼì²âÓ¦ÓÃÖУ¬ÈÈÃôµç×èÒѾ­±»¾«¶È¸ß¡¢×¼È·ÐԺõĸ÷ÖÖ¼¯³ÉζȲɼ¯É豸Ëù´úÌæ¡£

ÕýʽÓÉÓÚÕâЩÒòËØ£¬±¾Éè¼Æ²ÉÓõÄÊÇDS18B20´«¸ÐÆ÷½øÐÐζȲâÁ¿£¬Ëü¾ßÓвâÁ¿¾«¶È¸ß£¬Á¬½Ó·½Ê½¼òµ¥£¬·Ö±æÂʸߵȵȡ£Ó봫ͳµÄÈÈÃôµç×èÏà±È£¬DS18B20Äܹ»Ö±½Óͨ¹ýµ¥×ÜÏß½Ó¿Ú£¬¶ÁÈ¡Êý×ÖÐźţ¬¶øÇÒ¸ù¾ÝÐèÒª¿ÉÒÔÌá¸ßDS18B20µÄ¶ÁÈ¡¾«¶È¡£ÁíÍâDS18B20µÄ¹¦ÂÊ¿ÉÒÔ´Óµ¥×ÜÏßÉÏ»ñÈ¡£¬Ê¹µÃÁ¬½ÓÏß½øÒ»²½¼õÉÙ£¬ÎÞÐèÍⲿµçÔ´£¬Òò´Ë£¬DS18B20±»¹ã·ºÓ¦ÓÃÓÚζȲɼ¯Óë´¦Àí¡¢Êý×ÖζȼƼ°¸÷ÖÖζȿØÖÆÏµÍ³ÖС£

4

2.3 Cortex-M3 ´¦ÀíÆ÷¼ò½é

Cortex-M3 ´¦ÀíÆ÷ÊÇÒ»ÖÖ32Ϊ´¦ÀíÆ÷£¬ËüÔÚ¸÷ÖÖÌØ¶¨Êг¡¶¼ÓÐ׿«´óµÄÓ°Ï죬ËüΪ´æ´¢Æ÷ºÍ´¦ÀíÆ÷µÄÏà¹Ø¼¼ÊõÌṩÁ˽â¾ö·½°¸£¬ËüÊÇÎ§ÈÆÊг¡Õ½ÂÔ¶øÐγɵÄÌØ¶¨µÄ²úÆ·¡£ËüÕûºÏÁËÐí¶àµÄ¼¼Êõ£¬²»½ö¼õÉÙÁËʹÓÃÄڴ棬¶øÇÒÄܹ»ÔÚºÜСµÄǶÈëʽоƬÉϼ¯³É¡£¾ßÓе͹¦ºÄºÍ¸ß¿É¿¿ÐÔ¡£Ïà¶ÔÓÚ¹ýÈ¥µÄARM7´¦ÀíÆ÷£¬ARM Cortex-M3´¦ÀíÆ÷ÊÇʹÓÃÃż¶µç·×îÉÙµÄCPUÄںˣ¬ÕâÑù´ó´óµÄ½µµÍÁËоƬµÄÃæ»ý£¬Ò²¸ü¼ÓµÄÊÊÓÃÓڵͳɱ¾µÄ¹¤ÒÕÉú²ú¡£¸ÃÀà´¦ÀíµÄÐÔÄÜ¿ÉÒÔ´ïµ½1.2DMIPS/MHz£¬ÄÚ´æ½á¹¹²ÉÓÃÁËÏȽøµÄ¹þ·ð½á¹¹£¬ºÏÀíµØÀûÓÃÁËоƬ¿Õ¼ä£¬Ê¹ÏµÍ³Âú×ãÁËÏÂÒ»´ú²úÆ·¿ØÖÆÐèÇó¡£Ö´ÐÐ32λµÄThumb-2 Ö¸Á£¬Í¬Ê±°üº¬¸ßЧµÄϵͳÍâÉ衣ͬʱ£¬¸Ã¼Ü¹¹»¹ÍƳöÁËеĵ¥Ïßµ÷ÊÔ¼¼Êõ£¬±ÜÃâʹÓöàÒý½Å½øÐÐ JTAG µ÷ÊÔ£¬²¢È«ÃæÖ§³Ö RealView ±àÒëÆ÷ºÍ RealViewµ÷ÊÔ²úÆ·[2]¡£

ARM Cortex-M3ÄÚºË×ܹ²ÓÐ20¸ö¼Ä´æÆ÷£¬Ã¿Ò»¸ö¼Ä´æÆ÷µÄÊý¾Ýλ¿í¶ÈΪ32BIT£¬R0-R12 Õâ13¸ö¼Ä´æÆ÷ΪͨÓüĴæÆ÷£¬Ö÷ÒªÓÃÀ´±£´æÁÙʱÊý¾ÝºÍ¾Ö²¿Êý¾Ý£»R13Ϊ¶ÑÕ»¼Ä´æÆ÷£¬Ò²½Ð×öSP¼Ä´æÆ÷£¬ÓÃÀ´½øÐÐÈÎÎñѹջºÍ³öÕ»²Ù×÷¡£ R14ÎªÌø×ª¼Ä´æÆ÷£¬¼´Í¨³£Ëù˵µÄÁ´½Ó¼Ä´æÆ÷(LR)£¬Õâ¸ö¼Ä´æÆ÷ÓÃÀ´±£´æPC¼Ä´æÆ÷µØÖ·£¬µ±³ÌÐò·µ»ØÊ±£¬ÐèÒª±£´æ·µ»ØµÄPCµØÖ·¡£APSR¼Ä´æÆ÷±£´æÔËËãÖеķûºÅºÍ½á¹û±êÖ¾µÈÐÅÏ¢¡£IPSR¼Ä´æÆ÷ΪÖжϼÆÊý¼Ä´æÆ÷£¬EPSR״̬¼Ä´æÆ÷£¬¿ÉÖжÏÖ´ÐÐÖ¸ÁîÓëÌõ¼þÌø×ªÖ¸Áî״̬¼Ä´æÆ÷¡£FreeROTSÄÚºËÓëCPUÏà¹ØµÄÎļþ´ó¶àÇ£³¶µ½ÁÙ½ç´úÂëµÄ´¦ÀíºÍÈÎÎñ״̬ºÍÈÎÎñ±äÁ¿µÄÏÖ³¡±£´æ¡£

2.4ϵͳ×ÜÌåÉè¼Æ

±¾Î¶ȿØÖÆÏµÍ³µÄÉè¼Æ±¾×ŵ͹¦ºÄ¡¢µÍ³É±¾¡¢ÐÔÄܺõÈÔ­Ôò£¬°ÑÕû¸öϵͳ·½°¸»®·ÖΪËĸö²¿·Ö£¬·Ö±ðÊÇǶÈëʽ×îСϵͳ¡¢²âβ¿·Ö¡¢¿ØÖƲ¿·Ö¼°ÏÔʾ²¿·Ö¡£Æäϵͳ¿òͼÈçͼ2.1Ëùʾ¡£

1¡¢Ç¶Èëʽ×îСϵͳ

ǶÈëʽ×îСϵͳ°üÀ¨Ç¶ÈëʽоƬ£¬Ê±Öӵ緺͸´Î»µç·¡£Ê±ÖÓµç·ÓÃÓÚ²úÉúǶÈëʽ¹¤×÷ʱËù±ØÐëµÄʱÖÓÐźÅ[3]¡£STM32ǶÈëʽµÄÄÚ²¿µç·ÔÚʱÖÓÐźſØÖÆÏ£¬ÑϸñµØ°´Ê±ÐòÖ´ÐÐÖ¸Áî½øÐй¤×÷£»¸´Î»²Ù×÷ÊÇǶÈëʽµÄ³õʼ»¯²Ù×÷£¬Ö»Ðè¸øÇ¶ÈëʽµÄ¸´Î»Òý½ÅRST¼ÓÉÏ´óÓÚ2¸ö»úÆ÷ÖÜÆÚµÄ¸ßµçÆ½¾Í¿ÉÒÔʹǶÈëʽ¸´Î»¡£

2¡¢²âβ¿·Ö

²ÉÓÃζȴ«¸ÐÆ÷£¬²âÁ¿Î¶ÈÐÅÏ¢£¬Î¶ȲâÁ¿·¶Î§Îª0~100¡æ£¬×î´óÏßÐÔÆ«²îСÓÚ1ÉãÊ϶ȡ£°ÑζÈÐźÅË͵½Î¢¿ØÖÆÆ÷£¬±ãÓÚMCU´¦ÀíºÍ¿ØÖÆ¡£

3¡¢¿ØÖƲ¿·Ö

¸Ã²¿·Öͨ¹ýǶÈëʽµÄGPIO¿ÚÊä³öµÄ¸ßµÍµçƽÀ´¿ØÖƼ̵çÆ÷µÄͨ¶Ï£¬´Ó¶ø¾ö¶¨ÊÇ·ñ¼ÓÈÈ»òÖÆÀ䣬µ±Î¶ȸßÓÚζÈÉÏÏÞʱ£¬ÖÆÀä¿ØÖÆÊä³ö£»µ±Î¶ȵÍÓÚÏÂÏÞʱ£¬

5

¼ÓÈÈ¿ØÖÆÊä³ö¡£

4¡¢ÏÔʾ²¿·Ö

²ÉÓÃÁ¼ºÃµÄÈ˼ʽ»»¥LCD1602ÏÔʾ£¬LCD1602×Ô´ø×ֿ⣬²Ù×÷·½±ã¡£

ͼ 2.1 ϵͳÉè¼Æ¿òͼ

2.5ϵͳÉè¼ÆÖ¸±ê

Éè¼ÆµÄÖ÷Òª¹¦ÄܺÍÖ¸±êÈçÏ£º £¨1£©¶àµã¼à²â£»

£¨2£©¼à²âζȷ¶Î§¿í£¬¾«¶È¸ß£» £¨3£©ÓÃLCDÒº¾§½øÐÐʵ¼ÊζÈÖµÏÔʾ£» £¨4£©Äܹ»×ÔÖ÷ÉèÖÃÉÏ¡¢ÏÂÏÞ±¨¾¯Î¶ȣ»

£¨5£©µ±³¬¹ý±¨¾¯Î¶Ⱥó£¬Äܹ»×Ô¶¯·¢³ö±¨¾¯Ðźš£

±¾ÏµÍ³Ê¹ÓýϸߵÄÖÇÄÜ»¯Éè¼Æ£¬ÎÞÐèÊÖ¶¯¶Ôϵͳ½øÐи÷ÖÖ²ÎÊýµÄÉ趨£¬Ò»µ©½øÈëϵͳ¿ªÆô½çÃæ£¬ÏµÍ³½«»á×Ô¶¯¶Ôµç·µÄ¸÷¸ö¹¦ÄÜÄ£¿é½øÐмì²â£¬Èç¹û¸÷¸öÄ£¿éÕý³££¬½«×Ô¶¯½øÈë¼à²â½çÃæ£¬Èç¹û¼ì²âµ½ÏµÍ³µÄ²¿·ÖÎÊÌâ²»Õý³££¬½«»áÔÚÏÔʾ½çÃæÉÏÏÔʾ³öÀ´£¬±ãÓÚ´¦Àí¡£½øÈë¼à²â»­ÃæÒÔºó£¬ÏµÍ³»áÒÔĬÈϵijõʼֵ½øÐмà²â£¬Èç¹û±»¼à²â¶ÔÏóÓÐÌØÊâµÄÐèÒª£¬¿ÉÒÔÔÚ¼à²â½çÃæÏÂʹÓð´¼üÊäÈëϵͳ£¬¶Ô¼à²âµÄ²ÎÊý½øÐÐÐ޸ģ¬´ïµ½¼à²âËùÐèµÄÒªÇó¡£

6

Ëùʾ¡£

ÁËÏêϸµÄ½éÉÜ¡£

3.1 STM32 ×îСϵͳģ¿éÉè¼Æ

µÚ3Õ Ӳ¼þÉè¼Æ

ͼ3-1 STM32´¦ÀíÆ÷

°üÀ¨STM32×îСϵͳ£¬Î¶Ȳɼ¯µç·ºÍÏÔʾµç·µÈ¡£²¢¶Ôÿ¸öµç·µÄ¹¦ÄܽøÐÐ

STM32´¦ÀíÆ÷ÊÇרΪҪÇó¸ßÐÔÄÜ¡¢µÍ³É±¾¡¢µÍ¹¦ºÄµÄǶÈëʽӦÓÃרÃÅÉè¼Æ

µÄARM Cortex-M3Äںˡ£JTAGµç·Ö÷ҪΪÓû§Ìṩ³ÌÐòÏÂÔØºÍµ÷ÊÔ£¬STM32

BOOT0¡¢BOOT1Ñ¡ÔñCPUµÄÆô¶¯·½Ê½£¬ÆäÆô¶¯·½Ê½·ÖΪÓû§FLASHÆô¶¯¡¢Ïµ

ÓÐÈýÖÖÏÂÔØ³ÌÐòµÄ·½Ê½£¬·Ö±ðÊÇMDK±àÒëÆ÷¸½´øµÄÉÕд¡¢´®¿ÚISPÉÕд¡¢

J-FLASH·½Ê½ÉÕд¡£²»Í¬µÄÏÂÔØ·½Ê½¶ÔÓ¦STM32Æô¶¯·½Ê½Ò²²»Í¬£¬Ö÷Ҫͨ¹ý

ÏÂÔØµç·¡¢¸´Î»µç·¡¢8MHz¸ßËÙ¾§Õñµç·¡¢¸´Î»µç·×é³É[4]£¬Æäµç·ͼÈçͼ3-1

±¾Éè¼ÆµÄºËÐĵ¥ÔªMCU²ÉÓõÄÊÇSTM32F103C8T6£¬ÆäÍâΧµç·°üÀ¨JTAG

ÉÏÒ»Õ½éÉÜÁËϵͳµÄ×ÜÌåÉè¼Æºó£¬±¾ÕÂÏêϸ½éÉÜζȲɼ¯ÏµÍ³µÄÓ²¼þϵͳ£¬

ͳ´æ´¢Æ÷Æô¶¯·½Ê½¼°STM32ÄÚǶµÄSRAMÆô¶¯×é³É¡£±¾Éè¼Æ²ÉÓÃJ-LINKÉÕд£¬

7