日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32F103C6T6初步学习

發布時間:2023/12/16 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32F103C6T6初步学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

day1:1.燒錄例程時,keil總是需要長按復位鍵才能下載,究其原因,是要把STMCubeMX切換為Serial Wire模式才可在keil中連續燒錄。No?Dugger 模式和Serial Wire分別對應不同的代碼,導致效果不同

?2.按照微雪課堂的教程學習用GPIO_OUTPUT控制LED,并做成8顆LED的流水燈。

3.繼續學習GPIO,按照教程程序編譯失敗,顯示結構體和函數未定義,將定義搬到主函數后編譯成功,但功能無法實現。

day2:1.查閱解決辦法后發現是要將結構體和函數定義寫在gpio.h頭文件中,而不是gpio.c(我是傘兵),編譯成功。

2.LED一直常量,是因為LED_OFF/ON函數分別對應了RSET/SET,這個正好為亮滅,修改后顯示正常,長按常量,不按保持滅。

3.學習微雪第二節,利用外部中斷,設置4個按鍵控制4種功能,此過程中,有許多庫函數在CubeMX中不支持,需要具體了解。

day3:1.接觸到基本定時器,對相關寄存器概念不熟悉,查閱相關資料。

Prescaler(PSC): 定時器預分頻設置,用來設置TIMx_PSC的值,16位,設置 0~65535 以達到 1 至 65536 的分頻。

Couter Mode : 定時器的計數方式,基本定時器只能向上(UP)計數(即TIMx_CNT只能從0開始遞增,無須初始化)

Couter Period : 定時器周期,16位,設置 0~65535 以達到 1 至 65536 的周期。每當定時器達到 設定值時,置位。

APB2負責AD,I/O,高級TIM,串口1。

APB1負責DA,USB,SPI,I2C,CAN,串口2345,普通TIM。

發生中斷的時間=(PSC+1)?(Period+1)/定時器的頻率

??

?按照教程步驟下載調試后,發現只進入定時器中斷2次后便不再進入,探索其原因。

找了很久后,發現需要對定時器TIM3放在while里重復使能,才能使燈正常亮滅,不知為何。

原因為TIM3中CR1寄存器里CEN位自動復位。

day4:1.CEN自動復位是因為錯誤配置為單脈沖模式,修改后恢復正常。

?

得出一些調試經驗:1.設置斷點,尋找出現問題的模塊;

?????????????????????????????????2.查看相關寄存器和HAL庫開發指南,找到錯誤的語句;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.修改語句或CubeMX的配置。?

2.配置定時器TIM1_channel1為PWM模式,對應引腳PA8,通過控制脈寬使LED亮度變化。

3.用debug對輸出的PWM波進行查看,計算周期。

day5:學習串口通信,查詢資料后發現硬件方面需要USB-TTL才能進行通信,安裝虛擬串口也沒有反應,該節先跳過。

同樣,DMA也需要用到上述硬件,暫時跳過。

ADC也需要串口通信,了解到keil可以使用虛擬串口來進行串口通信。

先下載VSPD虛擬串口軟件,再將KEIL配置為下圖所示

?SARMCM3.DLL? ? ? ? -REMAP? ? ? ? SARMCM3.DLL

DARMSTM.DLL? ? ? ? -pSTM32F103C6? ? ? ? TARMSTM.DLL????????-pSTM32F103C6

在debug里的command里鍵入 MODE COM3 9600,0,8,1

ASSIGN COM3 <S1IN>S1OUT(cubemx里用哪個串口就SxIN);

再打開串口軟件(或者keil自帶的UART#x窗口),配置相同,即可收到程序發送的信息。

總結

以上是生活随笔為你收集整理的STM32F103C6T6初步学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。