久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5286|回復: 2
收起左側

STM32 LED八進制燈全套資料(系統板、原理圖、GPIO、空指令延時)

[復制鏈接]
ID:265379 發表于 2017-12-22 16:44 | 顯示全部樓層 |閱讀模式
1、中斷方案

三個定時器的中斷服務程序各自負責一個LED

2、main方案

依據八進制真值表進行三個LED燈的亮滅切換
0.jpg

ppt教程:
0.jpg

1、了解STM32最小系統板的軟硬件組成。
2、考察C代碼閱讀能力、掌握C函數編寫。
3、掌握嵌入式開發的單步跟蹤調試、實時變量查看。
4、掌握開關LED的GPIO編程實現。
5、掌握基于空指令延時的LED跑馬燈編程實現。
1、閱讀STM32系統板原理圖,找到最小系統板的幾個組成部分,以及LED、KEY和UART擴展電路。
2、安裝Keil ARM開發軟件,根據《問題匯總》解決遇到問題,注意SWD仿真器的選擇、STM32 Flash的配置。
3、針對示例代碼,進行源碼編譯、程序下載、斷點設置、單步調試、全速運行,注意區分compile&build、load&debug。
    (思考題:AddWatch可以查看變量值,但如何通過內存地址查看變量值呢?)
4、編寫程序,實現LedInit、SetLedOn、SetLedOff函數,注意單片機Main主函數的初始化部分和主體功能循環部分。
5、編寫程序,實現MyDelay延時函數。
6、編寫程序,實現LED跑馬燈,或八進制燈(可選)。
7、提高:閱讀STM32原理圖,找到特殊的LED4和KEY4,借助杜邦線連接LED4和STM32芯片的某個GPIO管腳,并在Keil環境編程,實現對LED4的亮滅控制。

GPIO-流水燈-使用庫函數stm32單片機源程序如下:
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @date    2018-xx-xx
  7.   * @brief   測試led
  8.   ******************************************************************************
  9.   * @attention
  10.   *
  11.   ******************************************************************************
  12.   */
  13.         
  14. #include "stm32f10x.h"
  15. #include "bsp_led.h"

  16. void Delay(__IO u32 nCount);

  17. /**
  18.   * @brief  主函數
  19.   * @param  無  
  20.   * @retval 無
  21.   */
  22. int main(void)
  23. {        
  24.         /* LED 端口初始化 */
  25.         LED_GPIO_Config();         

  26.         /* 方法2,使用固件庫控制IO */
  27.         while (1)
  28.         {
  29.                 LED1( ON );                          // 亮
  30.                 Delay(0x0FFFFF);
  31.                 LED1( OFF );                  // 滅

  32.                 LED2( ON );                          // 亮
  33.                 Delay(0x0FFFFF);
  34.                 LED2( OFF );                  // 滅

  35.                 LED3( ON );                          // 亮
  36.                 Delay(0x0FFFFF);
  37.                 LED3( OFF );                  // 滅           
  38.         }

  39. }

  40. void Delay(__IO uint32_t nCount)         //簡單的延時函數
  41. {
  42.         for(; nCount != 0; nCount--);
  43. }
  44. /*********************************************END OF FILE**********************/
復制代碼

GPIO-流水燈-直接操作寄存器:
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @date    2013-xx-xx
  7.   * @brief   測試led
  8.   ******************************************************************************
  9.   * @attention
  10.   ******************************************************************************
  11.   */  
  12. #include "stm32f10x.h"
  13. #include "bsp_led.h"

  14. void Delay(__IO u32 nCount);

  15. /**
  16.   * @brief  主函數
  17.   * @param  無  
  18.   * @retval 無
  19.   */
  20. int main(void)
  21. {        
  22.         /* LED 端口初始化 */
  23.         LED_GPIO_Config();         

  24.         /* 方法1,直接控制寄存器 */
  25.         while(1)
  26.         {
  27.                 // ODR GPIOB
  28.                 // 15 14 13 12     11 10 9 8    7 6 5 4    3 2 1 0
  29.                 // 0  0  0  0      0  0  0 0    0 0 0 0    0 0 0 0 (復位值)
  30.                 // 1  1  1  1      1  1  1 1    1 1 1 1    1 1 1 0

  31.                 GPIOB->ODR = 0XFFFE;                 //低電平,GPIOB0(LED0)燈亮
  32.                 Delay(0x0FFFFF);
  33.                 GPIOB->ODR = 0XFFFF;                //高電平,GPIOB0(LED0)燈滅

  34.                 // ODR GPIOC
  35.                 // 15 14 13 12     11 10 9 8    7 6 5 4    3 2 1 0
  36.                 // 0  0  0  0      0  0  0 0    0 0 0 0    0 0 0 0 (復位值)
  37.                 // 1  1  1  1      1  1  1 1    1 1 1 0    1 1 1 1        
  38.                 GPIOC->ODR = 0XFFEF;                 //低電平,GPIOC4(LED1)燈亮
  39.                 Delay(0x0FFFFF);
  40.    
  41.                 GPIOC->ODR = 0XFFFF;                //高電平,GPIOC4(LED1)燈亮

  42.                 // ODR GPIOC
  43.                 // 15 14 13 12     11 10 9 8    7 6 5 4    3 2 1 0
  44.                 // 0  0  0  0      0  0  0 0    0 0 0 0    0 0 0 0 (復位值)
  45.                 // 1  1  1  1      1  1  1 1    1 1 1 1    0 1 1 1                        
  46.                 GPIOC->ODR = 0XFFf7;                 //低電平,GPIOC5(LED2)燈亮
  47.                 Delay(0x0FFFFF);
  48.                 GPIOC->ODR = 0XFFFF;                //高電平,GPIOC5(LED2)燈亮
  49.         }
  50. }

  51. void Delay(__IO uint32_t nCount)         //簡單的延時函數
  52. {
  53.         for(; nCount != 0; nCount--);
  54. }
  55. /*********************************************END OF FILE**********************/
復制代碼

GPIO-流水燈-自定義宏操作
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  fire
  5.   * @version V1.0
  6.   * @date    2013-xx-xx
  7.   * @brief   測試led
  8. #include "stm32f10x.h"
  9. #include "bsp_led.h"

  10. void Delay(__IO u32 nCount);

  11. /**
  12.   * @brief  主函數
  13.   * @param  無  
  14.   * @retval 無
  15.   */
  16. int main(void)
  17. {        
  18.         /* LED 端口初始化 */
  19.         LED_GPIO_Config();         

  20.         /* 方法3,使用寄存器控制IO */
  21.         while(1)
  22.         {

  23.                 LED1_TOGGLE;                                 //led1狀態反轉,亮        
  24.     Delay(0x0FFFFF);
  25.                 LED1_TOGGLE;                                //led1狀態反轉,滅

  26.                 LED2_TOGGLE;                                //led2狀態反轉,亮
  27.                 Delay(0x0FFFFF);           
  28.                 LED2_TOGGLE;                          //led2狀態反轉,滅

  29.                 LED3_TOGGLE;                                //led3狀態反轉,亮
  30.                 Delay(0x0FFFFF);
  31.                 LED3_TOGGLE;                                //led3狀態反轉,滅
  32.         }
  33. }

  34. void Delay(__IO uint32_t nCount)         //簡單的延時函數
  35. {
  36.         for(; nCount != 0; nCount--);
  37. }
  38. /*********************************************END OF FILE**********************/
復制代碼


0.png 0.jpg

所有資料51hei提供下載:
LED八進制燈(系統板、原理圖、GPIO、空指令延時).zip (1.88 MB, 下載次數: 30)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:243748 發表于 2017-12-26 08:23 來自觸屏版 | 顯示全部樓層
很好的學習資料,謝謝分享
回復

使用道具 舉報

ID:63317 發表于 2020-11-7 11:50 | 顯示全部樓層
很好的學習資料
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品一区二区在线观看 | 亚洲成人观看 | 中文字幕av在线播放 | 日韩一区二区三区视频在线播放 | 草久久 | 欧美网址在线观看 | 另类 综合 日韩 欧美 亚洲 | 亚洲精品在线免费 | 亚洲欧美在线一区 | 精品视频导航 | 国产一区二| 久久综合狠狠综合久久综合88 | 国产精品久久久久免费 | 婷婷久久精品一区二区 | 国产一级毛片视频 | 国产欧美精品一区二区三区 | 国产精品日韩欧美一区二区 | 免费精品 | 亚洲午夜精品久久久久久app | 亚洲精品视频免费观看 | 国产99小视频 | 国产成人一区 | 免费观看一级毛片视频 | 欧美黑人国产人伦爽爽爽 | 九九九久久国产免费 | 久久久精品一区 | 久久躁日日躁aaaaxxxx | 毛片视频观看 | 91国语清晰打电话对白 | 国产色| 国产精品性做久久久久久 | 亚州毛片| 99九九久久 | 日韩免费| 亚洲午夜精品 | 国产成人精品一区二区 | 狠狠狠干| 激情毛片 | 日韩一区二区三区在线 | 欧美综合视频在线 | 日韩欧美在线一区 |