久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32練手總結
[打印本頁]
作者:
51黑ren
時間:
2015-12-27 03:46
標題:
STM32練手總結
剛剛做完一個練手的項目,寫一下心得總結。
1、關于全局變量,因為一個項目必然會有很多的.c和.h。固然會用到全局變量,在一個.c中定義一個變量,在其.h中用extren聲明該變量,將該變量包含到其他的.c中,那么其他的.c也就能使用該變量了。
2、現在寫單片機程序的基本框架就是,把每一個用的外設分為一個個模塊,在定時器中分時間逐個掃描。但是,發現了一個弊端,就是如果該時間掃描時間過長,就會導致中斷混亂,不能按時進入或者跳出中斷。所以,就僅僅再定時器中斷里面用標志位進行置位,在while(1)中進行判斷,定時一段時間給需要掃描時間長的函數。一般定時器掃描應該是比較快的,因為快,所以任務進行不完,下一次中斷已經來了,比如一個任務需要10ms,而定時器中斷是2ms,那么就會出現錯誤,所以就讓10ms之內一直做這個任務,雖然定時器還是會中斷,在進行完這件事之前,標志位不會置位為其他事件。
3、在用屏幕的時候出現的一個問題。屏幕雖然廠家會給出官方的顯示函數,直接調用即可,但是有時不符合自己的要求,比如想要顯示一個變量等等(其實還是自己基礎不行哈);
這是一個顯示函數
可以看出,他的第三個形參是一個指針形變量,但是再寫實參的時候,該如何寫變量呢?
有兩種方法:
指針型變量,指向的是地址。前者“字符串”,指針指向字符串第一個字符地址,使字符一個一個顯示,直到遇到字符串結束符“\0”顯示結束。后者,定義High[]為一個數組,把需要顯示的變量分成百位、十位、個位等等。。。在分別放到數組里面,關鍵的是,數組最后一個值要放“\0”,否則,無法判斷是否需要顯示結束。將數組命作為實參,道理如上。
一開始,我顯示變量的時候用的是&在加上變量,可是因為沒有結束符“\0”,導致無法判斷顯示結束,而出現錯誤。
4、用到了睡眠模式,其實就是一條內核指令,只要執行就能進入睡眠狀態,一開始睡眠指令放在定時器中斷里面了,發現竟然睡不著。。。拿出來才行了。在一個就是喚醒,有兩種方式,取決于你進入睡眠的指令,我用的是任意中斷喚醒,所以如果程序中用的定時器中斷等等的話,要先關閉這些中斷,只留下你自己設定的用來喚醒的中斷線就好。
5、上電復位,有兩種上電復位的方法,一種是,不清除寄存器的配置。另一種是將寄存器配置清除掉,其實來說,這種方法,就好似硬件復位。
具體指令:
__set_FAULTMASK(1);
NVIC_SystemReset();
好了結束了
作者:
jinhua1916
時間:
2018-8-7 11:31
感覺很不錯,贊贊贊!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
午夜播放器在线观看
|
国产精品久久久久久亚洲调教
|
色天堂影院
|
日韩高清国产一区在线
|
日韩欧美中文
|
国产精品一区二区视频
|
久久久久一区二区
|
中文在线播放
|
www精品美女久久久tv
|
一区二区三区观看视频
|
日韩av网址在线观看
|
高清久久
|
国产精品网址
|
91原创视频
|
亚洲精品欧美
|
自拍偷拍精品
|
四虎影院在线观看av
|
国产福利在线视频
|
华丽的挑战在线观看
|
中文字幕日韩av
|
午夜99
|
蜜桃视频一区二区三区
|
国产精品日韩一区二区
|
欧美精品综合在线
|
亚洲综合色视频在线观看
|
国产精品一区二区视频
|
欧美在线一区二区三区
|
国产精品久久久久aaaa樱花
|
国产精品a久久久久
|
久久中文字幕电影
|
一区二区三区精品视频
|
国产精品久久久久久久久久久久
|
国产无人区一区二区三区
|
久久99精品久久久久久
|
最新午夜综合福利视频
|
欧美精品三区
|
欧美成人精品一区二区三区
|
国产不卡在线
|
国产视频一区二区三区四区五区
|
亚洲精品一区二区三区蜜桃久
|
亚洲成人免费av
|