久久久久久久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://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产日韩欧美日韩大片 | 精品久久久久久久久久久久久久久久 | 亚洲精品久久久久久久久久久 | 在线观看日韩欧美 | 欧美日韩三区 | 日韩欧美在线观看视频 | 精品久久久久久久久久久 | 日韩黄色在线视频 | 国产黄色免费看 | 国产黄a三级三级三级看三级男男 | 天天色天天 | 黄色在线小视频 | 亚洲精品成人 | 国产伦精品一区二区三区视频我 | 久久久久久久久久国产精品 | 国产精品福利在线 | aaa一级片 | 午夜天堂在线 | 亚洲欧美日韩在线 | 欧美成人精品一区二区三区 | 日韩一区二区三区视频 | 成人免费毛片嘿嘿连载视频 | 国产黄色免费 | 日韩不卡在线观看 | 一区两区小视频 | 国产免费成人 | av黄色在线 | 色爽视频 | 亚洲天天看| 成人毛片在线播放 | 午夜精品久久 | 日韩成人中文字幕 | 亚洲精品一二三 | 亚洲欧美一区二区三区在线 | 黄视频网站在线观看 | 午夜在线观看免费视频 | 你懂的在线网站 | 国产成人a亚洲精品 | 在线国产一区 | 日韩欧美中文在线 | 亚洲第十页 |