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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5202|回復: 2
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
1、中斷方案

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

2、main方案

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


ppt教程:


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**********************/
復制代碼




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


評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:243748 發表于 2017-12-26 08:23 來自手機 | 只看該作者
很好的學習資料,謝謝分享
回復

使用道具 舉報

板凳
ID:63317 發表于 2020-11-7 11:50 | 只看該作者
很好的學習資料
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.国产一区 | 日本一区二区三区四区 | 国产视频一区二区 | 欧美成人精品在线 | 粉嫩国产精品一区二区在线观看 | 91精品久久久久久综合五月天 | 91婷婷韩国欧美一区二区 | 欧美黄色一区 | 插插插干干干 | 国产在线观看网站 | 日本视频一区二区三区 | 成人自拍视频网站 | 亚洲一区二区三区免费在线 | 成人片免费看 | 精品国产乱码久久久久久丨区2区 | 欧美淫片 | 中文字幕久久精品 | 一二区电影 | 欧美极品在线 | 午夜小电影 | www亚洲一区 | 中文字幕在线观看一区 | 日本精品一区二区三区在线观看视频 | 老司机精品福利视频 | av在线一区二区三区 | 精品免费国产一区二区三区 | 九九看片 | 国产成人亚洲精品 | www.五月婷婷.com | 久久久久国产精品 | 欧美 视频 | 亚洲精品视频在线 | 日韩国产中文字幕 | 在线视频一区二区三区 | 久久国产综合 | 深夜福利亚洲 | 亚洲欧洲在线视频 | 久久国产亚洲精品 | 91中文字幕在线观看 | 伊人网伊人 | 亚洲精品日韩在线 |