{"id":7917,"date":"2015-11-17T04:48:13","date_gmt":"2015-11-17T09:48:13","guid":{"rendered":"httpss:\/\/www.powenko.com\/wordpress\/?p=7917"},"modified":"2015-11-17T04:53:46","modified_gmt":"2015-11-17T09:53:46","slug":"blinky-led-%e7%87%88%e9%96%83%e7%88%8d","status":"publish","type":"post","link":"https:\/\/www.powenko.com\/wordpress\/?p=7917","title":{"rendered":"Blinky LED \u71c8\u9583\u720d"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"httpsss:\/\/www.youtube.com\/embed\/oE7YxLH-jqQ\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\n\r\n#include &amp;lt;stm32l1xx.h&amp;gt;\r\n#include \"LED.h\"\r\n\r\nconst unsigned long led1=6UL;\r\nconst unsigned long led2=7UL;\r\n\r\nconst unsigned long led_mask&#x5B;] = {1UL &amp;lt;&amp;lt; led1, 1UL &amp;lt;&amp;lt; led2};\r\n\r\n\/*-----------------------------------------------------------------------------\r\n *      LED_Init:  Initialize LED Pins\r\n *\r\n * Parameters: (none)\r\n * Return:     (none)\r\n *----------------------------------------------------------------------------*\/\r\nvoid LED_Init (void) {\r\n\r\n  RCC-&amp;gt;AHBENR |=  (1UL &amp;lt;&amp;lt;  2);                  \/* Enable GPIOC clock         *\/\r\n  \r\n  RCC-&amp;gt;AHBENR |= RCC_AHBENR_GPIOBEN; \/\/enable clock for LEDs        \/* Enable GPIOC clock         *\/\r\n\r\n  \/* Configure LED (PC.8..9) pins as push-pull outputs, No pull-up, pull-down *\/\r\n  GPIOB-&amp;gt;MODER   &amp;amp;= ~((3UL &amp;lt;&amp;lt; 2*led1) | (3UL &amp;lt;&amp;lt; 2*led2));\r\n  GPIOB-&amp;gt;MODER   |=  ((1UL &amp;lt;&amp;lt; 2*led1) | (1UL &amp;lt;&amp;lt; 2*led2));\r\n  GPIOB-&amp;gt;OTYPER  &amp;amp;= ~((1UL &amp;lt;&amp;lt;   led1) | (1UL &amp;lt;&amp;lt;   led2));\r\n  GPIOB-&amp;gt;OSPEEDR &amp;amp;= ~((3UL &amp;lt;&amp;lt; 2*led1) | (3UL &amp;lt;&amp;lt; 2*led2));\r\n  GPIOB-&amp;gt;OSPEEDR |=  ((1UL &amp;lt;&amp;lt; 2*led1) | (1UL &amp;lt;&amp;lt; 2*led2));\r\n  GPIOB-&amp;gt;PUPDR   &amp;amp;= ~((3UL &amp;lt;&amp;lt; 2*led1) | (3UL &amp;lt;&amp;lt; 2*led2));\r\n}\r\n\r\n\r\n\/*-----------------------------------------------------------------------------\r\n *      LED_On: Turns on requested LED\r\n *\r\n * Parameters:  num - LED number\r\n * Return:     (none)\r\n *----------------------------------------------------------------------------*\/\r\nvoid LED_On (uint32_t num) {\r\n\r\n  if (num &amp;lt; LED_NUM) {\r\n    GPIOB-&amp;gt;BSRRL = led_mask&#x5B;num];\r\n  }\r\n}\r\n\r\n\/*-----------------------------------------------------------------------------\r\n *       LED_Off: Turns off requested LED\r\n *\r\n * Parameters:  num - LED number\r\n * Return:     (none)\r\n *----------------------------------------------------------------------------*\/\r\nvoid LED_Off (uint32_t num) {\r\n\r\n  if (num &amp;lt; LED_NUM) {\r\n    GPIOB-&amp;gt;BSRRH = led_mask&#x5B;num];\r\n  }\r\n}\r\n\r\n\/*-----------------------------------------------------------------------------\r\n *       LED_Val: Write value to LEDs\r\n *\r\n * Parameters:  val - value to be displayed on LEDs\r\n * Return:     (none)\r\n *----------------------------------------------------------------------------*\/\r\nvoid LED_Out (uint32_t value) {\r\n  int i;\r\n\r\n  for (i = 0; i &amp;lt; LED_NUM; i++) {\r\n    if (value &amp;amp; (1&amp;lt;&amp;lt;i)) {\r\n      LED_On (i);\r\n    } else {\r\n      LED_Off(i);\r\n    }\r\n  }\r\n}\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; &nbsp; &nbsp; #include &amp;lt;stm32l1xx.h&amp;g [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7918,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[289,288],"tags":[],"class_list":["post-7917","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ch3-digitalout","category-stm32l152c-discovery"],"_links":{"self":[{"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7917"}],"collection":[{"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7917"}],"version-history":[{"count":2,"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7917\/revisions"}],"predecessor-version":[{"id":7920,"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7917\/revisions\/7920"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/7918"}],"wp:attachment":[{"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.powenko.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}