蘇嵌學習日誌14

2021-08-21 20:11:31 字數 1915 閱讀 3442

學習日誌

姓名:唐小玲 日期:2018.7.27

今日學習任務

nvic中斷

gpio串列埠

中斷與串列埠的相關程式編寫

日任務完成情況

(詳細說明本日任務是否按計畫完成,開發的**量)

均已完成。

日開發中出現的問題彙總

初次接觸stm32系列的微控制器,有點懵,此微控制器管腳過多,功能複雜,程式設計有點困難,有點複雜。

日未解決問題

日開發收穫

1.i/o配置的步驟-輸出模式

定義乙個埠結構體變數

gpio_inittypedef gpio_initstructure;

開啟埠對應的時鐘 rcc_ahb1periphclockcmd(rcc_all_led, enable);

填充結構體資料          

gpio_initstructure.gpio_mode = gpio_mode_out;

/* 設為輸出口 */  

gpio_initstructure.gpio_otype = gpio_otype_pp;

/* 設為推挽模式 */  

gpio_initstructure.gpio_pupd = gpio_pupd_nopull;

/* 上下拉電阻不使能 */  

gpio_initstructure.gpio_speed = gpio_speed_100mhz;

/* io口最大速度 */  

gpio_initstructure.gpio_pin = gpio_pin_led1;

完成初始化

gpio_init(gpio_port_led1, &gpio_initstructure);

2.輸出控制

庫函式:

• gpio_setbits     (gpiox, gpio_pin)

• gpio_resetbits (gpiox, gpio_pin)

• gpio_togglebits(gpiox, gpio_pin)

• 暫存器模式:

• gpiox->bsrrl  = gpio_pin;   //置高

• gpiox->bsrrh = gpio_pin;   //置低

• gpiox->odr   ^= gpio_pin;   //取反

3.輸出控制----位帶操作

// 把「位帶位址+位序號」轉換成別名位址的巨集

• #define bitband(addr, bitnum) ((addr & 0xf0000000)+0x02000000+((addr & 0x000fffff)<<5)+(bitnum<<2))  

• // 把乙個位址轉換成乙個指標

• #define mem_addr(addr)  *((volatile unsigned long  *)(addr))

• // 把位帶別名區位址轉換成指標

• #define bit_addr(addr, bitnum)   mem_addr(bitband(addr, bitnum))  

自我評價

(是否按開發規範完成既定任務,需要改進的地方,與他人合作效果等)

一些簡單的練習能夠做出,但是有一些知識點難以理解,不夠通透,需要多多實踐練習!

作業

蘇嵌學習日誌

姓名 盧元玉 日期 2018.7.12.今日學習任務 1.完成老師布置的31 道嵌入式 linux 開發工具篇問題整理 2.完成4個c 語言編寫。今日任務完成情況 1.基本能完成老師給我門布置的三十多道複習題目 2.對程式編寫還存在一定的難度,不過有老師和同學的幫助,最終能順利完成任務。今日開發中出...

蘇嵌學習日誌

學習日誌 姓名 於慧 日期 2018.7.23 今日學習任務 軟體安裝環境 stm32的簡單介紹 了解stm32f4xx的gpio暫存器 用暫存器點亮乙個led燈 了解韌體庫 建立基礎模板 今日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 完成軟體安裝 了解了stm32的一些簡單知識 實...

蘇嵌學習日誌

學習日誌 姓名 於慧 日期 2018.7.25 今日學習任務 gpio 時鐘systick系統定時器 今日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 使用韌體庫點亮led燈 部分 include bsp led.h include stm32f4xx.h int main void i...