Íê³ÉÁËFreeRTOS²Ù×÷ÏµÍ³ÒÆÖ²ºó£¬ÐèÒªÔÚÕâ¸ö²Ù×÷ϵͳÉϽøÐÐÓ¦ÓóÌÐòÉè¼Æ£¬ÔÚ½øÐÐÓ¦ÓóÌÐòÉè¼ÆÇ°£¬ÐèÒª¶ÔÓ¦ÓÃÈí¼þÐèÇóÓÐÒ»¸öÏêϸµÄÁ˽⡣ֻÓжÔÈí¼þµÄÐèÇó½øÐÐÁËÏêϸÁ˽âºó£¬²Å¿ÉÒÔ¶ÔϵͳµÄÈÎÎñ½øÐл®·Ö¡£ÔÚ±¾ÏµÍ³Öл®·ÖÁËÈý¸öÈÎÎñ£¬·Ö±ðÊÇLCDÏÔʾÈÎÎñ£¬Î¶Ȳɼ¯ÈÎÎñ¡¢Ö÷³ÌÐòÖ´ÐÐÈÎÎñ¡£Í¨¹ý±àдÕâÈý¸öÈÎÎñº¯ÊýÍê³ÉϵͳӦÓóÌÐòµÄÉè¼Æ£¬ÏÂÃæ¼¸Ð¡½ÚÏêϸ½éÉÜ¡£
4.3.1 LCDÏÔʾÈÎÎñ³ÌÐò
±¾ÏµÍ³µÄÏÔʾģ¿éΪLCD1602£¬LCD1602µÄÇý¶¯³ÌÐò°üÀ¨LCD³õʼ»¯¡¢LCDÇåÆÁ£¬LCDÏÔʾ×Ö·ûÏÔʾÈý¸öÖ÷Òªº¯Êý£¬LCD³õʼ»¯º¯ÊýÔÐÍΪvoid LCD_Init(void)£¬Ö÷Òª³õʼ»¯LCDÏÔʾ²ÎÊý£¬ÈçÅäÖÃSTM32µÄLCDÒý½Å£¬ÏÔʾģʽ£¬ÏÔʾ¹â±ê¼°µØÖ·Ôö³¤Ä£Ê½µÈµÈ²ÎÊý¡£Æä´´½¨Ò»¸öOSTaskLcdFunÏÔʾÈÎÎñ£¬À´¸üÐÂÏÔʾLCD×Ö·û¡£Æä¾ßÌå´úÂëºÍÁ÷³ÌÈçͼ4-4Ëùʾ£º
ͼ4-4 LCDÏÔʾÈÎÎñ
4.3.2 ζȲɼ¯ÈÎÎñ³ÌÐò
±¾ÏµÍ³µÄζȲɼ¯ÎªDS18B20£¬ËüÊǵ¥×ÜÏ߯÷¼þ£¬ËüºÍLCD³õʼ»¯Ò»Ñù£¬¶¼ÐèÒª¶ÔÆ÷¼þ½øÐгõʼ»¯£¬È»ºó¶ÁÈ¡DS18B20ÐòºÅ£¬¼ì²âDS18B20ÊÇ·ñ´æÔÚ£¬±¾Éè¼Æ²»ÐèÒª´æ´¢Êý¾Ý£¬·¢ËÍÌø¹ýRAMÃüÁֱ½Ó¶ÁȡζÈÊý¾Ý£¬È»ºóµÈ´ýDS18B20½øÐÐת»»£¬×ª»»Íê³Éºó£¬¶ÁȡζÈÊý¾Ý¡£Íê³ÉDS18B20µÄÊý¾Ý²É¼¯£¬ÆäÁ÷³ÌÈçͼ4-5Ëùʾ¡£¸Ãº¯Êýfloat DS18B20_Get_Temp(void)ʵÏÖ¡£
28
ͼ4-5 DS18B20Êý¾Ý²É¼¯Á÷³Ì
ÓÉÓÚ±¾ÏµÍ³²ÉÓõÄFreeRTOS²Ù×÷ϵͳ£¬¿ÉÒÔ´´½¨Ò»¸öÈÎÎñ£¬¶¨Ê±²É¼¯DS18B20µÄÊý¾Ý£¬Æä´´½¨Ò»¸öOSTaskDS18B20Fun²É¼¯ÈÎÎñ£¬À´ÊµÊ±²É¼¯DS18B20ζÈÊý¾Ý¡£ÆäÈÎÎñÁ÷³ÌÈçͼ4-6Ëùʾ£º
ͼ4-6 DS18B20ÈÎÎñÁ÷³Ì
4.3.3 Ö÷ÈÎÎñ³ÌÐò
29
Íê³ÉÁ˸÷¸ö×Ó³ÌÐòÈÎÎñ³ÌÐòºó£¬ÐèÒª´´½¨Ò»¸öÖ÷³ÌÐòÈÎÎñ£¬ÊµÊ±¹ÜÀíºÍ´æ´¢Î¶ÈÊý¾Ý¡£Ö÷ÈÎÎñʵʱ¼ì²âÁ½¸ö×ÓÈÎÎñµÄÔËÐÐ״̬£¬¶ÁȡζÈÈÎÎñµÄÊý¾Ý£¬ÆäÈÎÎñÖ®¼äͨÐÅ£¬²ÉÓöÓÁнøÐÐͨÐÅ£¬Ê×ÏÈÉùÃ÷Ò»¸ö¶ÓÁоä±ú£¬¸Ã¾ä±úÍê³É¶ÓÁв»Í¬µÄ±ê¼Ç£¬È»ºó´´½¨Ò»¸ö¹Ì¶¨´óСµÄ¶ÓÁУ¬Æä´úÂëÈçÏ£ºMsgQueue = xQueueCreate( 10 , sizeof( int16_t ) );´´½¨¶ÓÁУ¬¿ª±ÙÁËÒ»¸ö20¸ö×ֽڵĻº³å¶ÓÁУ¬Í¨¹ý¶ÁÈ¡¸Ã¶ÓÁеÄÊý¾Ý£¬ÊµÊ±ÏÔʾºÍ´æ´¢Î¶ÈÊý¾Ý¡£ÆäÖ÷ÈÎÎñÁ÷³ÌÈçͼ4-7Ëùʾ¡£
ͼ4-7 Ö÷ÈÎÎñÁ÷³Ì
4.4 ±¾ÕÂС½á
±¾ÕÂΪϵͳµÄÈí×÷ÏµÍ³ÒÆÖ²¹ý³Ì£¬·ÖÎöÁËFreeRTOS²Ù×÷ϵͳԴ´úÂëµÄ½á¹¹£¬È»ºóÏêϸµÄ½éÉÜÁËFreeRTOS²Ù×÷ϵͳµÄÒÆÖ²¹ý³Ì¡£×îºó¶Ô²Ù×÷ϵͳµÄÒÆÖ²½øÐÐÁËÑéÖ¤¡£Íê³ÉÁËÏµÍ³ÒÆÖ²ºó£¬½éÉÜÁËϵͳӦÓóÌÐòµÄ±àд¡£°üÀ¨LCDÏÔʾ×Ó³ÌÐò£¬Î¶Ȳɼ¯×Ó³ÌÐòºÍÖ÷³ÌÐòÉè¼Æ¡£
30
µÚ5Õ ×ܽáÓëÕ¹Íû
Ŀǰ£¬Ðí¶àÆóÒµ¶ÔÊý¾Ý²É¼¯Æ÷¶¼ÓÐÐèÇó£¬ÀýÈç¶Ôζȡ¢Êª¶È¡¢Ñ¹Á¦Êý¾ÝºÍ»¯¹¤ÉÏPHÖµÊý¾ÝµÄ²É¼¯£¬¶ÔÊý¾ÝÓÐÁ˾«È·µÄÕÆÎÕ²ÅÄÜÓÐЧµÄ¿ØÖÆÉú²ú¹ý³Ì£¬´ó´óµÄÌá¸ßÁËÉú²úÖÊÁ¿£¬¼Ó¿ìÁËÉú²úЧÂÊ¡£¶øÓÉÓÚǶÈëʽ¼¼Êõ¾ßÓÐʵʱÐÔ£¬Ê¹Óüò±ã£¬³É±¾Ïà¶Ô½ÏµÍµÄÓŵ㣬¸Ã¼¼Êõ³ÉΪÁ˵±ÏÂ×îÈÈÃŵÄÓ²¼þ¿ª·¢¼¼Êõ¡£×ÛÉÏËùÊö£¬ÀûÓÃǶÈëʽϵͳʵÏÖ¶ÔÊý¾ÝµÄ¿ØÖÆ£¬ÓÐ×ŷdz£¹ãÀ«µÄÊг¡¡£
´Ë´ÎÉè¼ÆÊÇÒÔCortex-M3×÷ΪÄںˣ¬²¢ÐÞ¸ÄÁËFreertosʵʱ²Ù×÷ϵͳµÄ³ÌÐò£¬Í¨¹ýÒÆÖ²µÄ·½·¨ÊµÏֵġ£Ñ¡ÓÃÁËSTM32Õâ¿îµ¥Æ¬»ú×÷ΪºËÐÄ£¬Õâ¿î´¦ÀíÆ÷ÐÔÄܸߣ¬¾ßÓкÜÓеÄÐԼ۱ȡ£Éè¼Æ¹ý³ÌÖ÷Òª·ÖΪÈçϲ½Ö裺
1.Á˽ⲢÊìϤÁËÓ²¼þ·½ÃæµÄSTM32µ¥Æ¬»ú£¬¶ÔÆäÄں˽øÐÐÑо¿£¬Ñ§Ï°²¢Äܹ»ÔËÓÃARM»ã±àÓïÑÔ¡£
2.²éÔÄFreertosʵʱ²Ù×÷ϵͳµÄÏà¹Ø×ÊÁÏ£¬ÊìϤÆä¹¹Ôì¡£
3.·ÖÎö²¢Éè¼ÆÊý¾Ý²É¼¯ÏµÍ³£¬¼òµ¥½éÉÜÁ˸÷¸öÄ£¿é£»ÊµÏÖÁËǶÈëʽʵʱ²Ù×÷ϵͳ FreeRTOS ÔÚ Cortex-M3 ÉϵÄÒÆÖ²£»
4.¶ÔϵͳµÄµ×²ã´®¿Ú¡¢LCD1602¡¢´æ´¢Æ÷ºÍͨÐÅÄ£¿éµÈÇý¶¯½øÐÐÅäÖá£
31