c語言volatile_[技術]為什么單片機C語言編程時某一變量有時亂碼

fc720409985e5a744c5ea1368a6ed29b.png

最近一個項目里面,在KEIL中用C語言在單片機里面定義了一個狀態機全局變量,這個變量隨時會改變,用于切換觸摸屏的界面,

可是程序運行中出現了一個問題,這個狀態機號總是出現了被莫名奇妙改變的問題,導致觸屏不能正常跳轉到預設的界面,

經過檢查分析,可能有兩個原因:

?)全局變量與局部變量同名重復定義。有可能是你定義了一個與全局變量一樣名字的局部變量,并在子程序里面修改了變量值。

?)缺少volatile修飾符。C語言中volatile修飾符不常用,它的作用是明確該變量是變化的,防止編譯器對該變量進行優化,讓處理器在運行時每次都從內存中讀取數據,而不是用寄存器中的備份數據。此修飾命令建議僅對全局有重要作用的關鍵變量使用。

用法:定義時:volatile unsigned char a;//定義了一個字符變量a

經檢查是第2個原因,在程序中定義變量時添加volatile修飾符后問題解決。

關注我,分享科技開發、高效思維、理財等的點點滴滴。微信公眾號:yonkotech

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/370760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/370760.shtml
英文地址,請注明出處:http://en.pswp.cn/news/370760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

沙箱Java代碼

在上一篇文章中,我們研究了如何保護移動Java代碼 。 這樣做的一種選擇是在籠子或沙箱中運行代碼。 這篇文章探討了如何為Java應用程序設置這樣的沙箱。 安全經理 Java中支持沙箱的安全性設施是java.lang.SecurityManager 。 默認情況下,Java在沒有Se…

微型計算機2017年9月上,2017年9月計算機一級考試WPS Office沖刺題

2017年9月計算機一級考試WPS Office沖刺題2017年下半年計算機一級考試將在9月份進行,為了方便考生備考計算機一級考試。下面是小編為大家帶來的計算機一級考試WPS Office沖刺題,歡迎閱讀。沖刺題一:1、PowerPoint 演示文稿和模板的擴展名是【…

七. 多線程編程5.創建多線程

到目前為止,我們僅用到兩個線程:主線程和一個子線程。然而,你的程序可以創建所需的更多線程。例如,下面的程序創建了三個子線程:// Create multiple threads.class NewThread implements Runnable { String name; /…

11尺寸長寬 iphone_弱電工程LED顯示屏尺寸規格及計算方法

前言:led屏幕在生活中,隨處可見,顯示屏、廣播屏等等,但是led尺寸怎么計算的,你知道嗎?今天我們一起了解一下led屏幕尺寸的計算方法。正文:一、點間距的計算1、各單元板常見型號及尺寸LED屏普遍是…

marquee標簽的使用

<!DOCTYPE html> <html> <head><meta charset"utf-8" /><title>演示marquee</title><style type"text/css">*{padding: 0px;margin: 0px;}marquee{border: 1px solid purple;}img{width: 360px;height: auto;}&…

32位數據源中沒有mysql_[SpringBoot實戰]快速配置多數據源(整合MyBatis)

前言由于業務需求&#xff0c;需要同時在SpringBoot中配置兩套數據源&#xff08;連接兩個數據庫&#xff09;&#xff0c;要求能做到service層在調用各數據庫表的mapper時能夠自動切換數據源&#xff0c;也就是mapper自動訪問正確的數據庫。本文內容&#xff1a;在SpringbootM…

考研計算機冷門學校,考研5個冷門的985院校 別隨大流,這些幾所也是很不錯的...

導語&#xff1a;想必大家考研的目的有很多&#xff0c;最主要的就是想去更好的學校提升自己&#xff0c;大部分會肯定是會更傾向于985這類的院校&#xff0c;每年其實除了那些被“擠破頭”的985院校&#xff0c;其實還有不少“低調”的985院校是非常值得報考的&#xff0c;下面…

名為 cursor_jinserted 的游標不存在_質量工程師必須了解的測量常識,你不知道怎么行...

01測量器具的分類測量器具是一種具有固定形態、用以復現或提供一個或多個已知量值的器具。按用途的不同量具可分為以下幾類&#xff1a;1. 單值量具只能體現一個單一量值的量具。可用來校對和調整其它測量器具或作為標準量與被測量直接進行比較&#xff0c;如量塊、角度量塊等。…

window.onload事件

!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>window.onload</title><!--window.onload注意點&#xff1a;01.在整個頁面中只能存在一次&#xff0c;否則后面會覆蓋前面02.頁面中所有的內容加載…

bzoj4869

http://www.lydsy.com/JudgeOnline/problem.php?id4869 終于A了。。。參考了下dalao的代碼。。。 拓展歐幾里得定理&#xff0c;改了幾次就不變了&#xff0c;但是用的時候要在快速冪里判是不是要用。 #include<bits/stdc.h> using namespace std; typedef long long ll…

一張圖一個表——CSS選擇器總結

CSS選擇器總結&#xff1a; (這些表是一張圖片^_^) 看底部 完整思維導圖圖片和表格的下載地址&#xff1a;https://download.csdn.net/download/denlnyyr/10597820 &#xff08;我不想選擇要積分幣下載的&#xff0c;但那里最低必須選擇1個積分……&#xff09; 參考文獻&…

JavaOne 2012覆蓋率

年度Java盛會JavaOne會議于9月30日至10月4日在舊金山舉行。 進行了許多有趣的演示&#xff0c;再次證明了健康的Java生態系統。 Java Code Geeks未能參加會議&#xff0c;但是我們的JCG合作伙伴Dustin Marx出席了會議&#xff0c;并且慷慨地提供了有關該事件的完整報道&#x…

native層 安卓_安卓逆向——拼xx協議java層分析

制丨阿星整理丨阿星老鐵們大家好&#xff0c;今天小編給大家帶來很實用的技巧叫拼xx協議java層分析&#xff0c;有啥不足的地方望大家指點指點&#xff01;首先抓包 反編譯這個時間段我們方法剖析一下找到onclick 看他的走向找到方法的地方都是在進行寫入 所以我們直接分析結果…

對口高考計算機vf試題,計算機對口升學模擬答案.doc

2013年計算機專業對口高考模擬試題二一、選擇題1&#xff0e;計算機硬件系統由( )組成A.CPU和內存 B.控制器和運算器 C.主機和外設 D.CPU、內存和外存2.下列敘述中&#xff0c;正確的說法是( )。A.鍵盤、鼠標、光筆、數字化儀和掃描儀都是輸入設備B.打印機、顯示器、數字化儀都…

Java集合框架圖

轉載于:https://www.cnblogs.com/areyouready/p/6835279.html

JavaScript學習第一天(一)

JavaScript介紹 JavaScript一種直譯式腳本語言&#xff0c;是一種動態類型、弱類型、基于原型的語言&#xff0c;內置支持類型。它的解釋器被稱為JavaScript引擎&#xff0c;為瀏覽器的一部分&#xff0c;廣泛用于客戶端的腳本語言&#xff0c;最早是在HTML&#xff08;標準通用…

折半查找的思想及源碼_常用排序與查找算法

1 選擇排序選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是&#xff1a;第一次從待排序的數據元素中選出最小(或最大)的一個元素&#xff0c;存放在序列的起始位置&#xff0c;然后再從剩余的未排序元素中尋找到最小(大)元素&#xff0c;然后放到已排序的序…

滾動視差?CSS 不在話下

何為滾動視差 視差滾動&#xff08;Parallax Scrolling&#xff09;是指讓多層背景以不同的速度移動&#xff0c;形成立體的運動效果&#xff0c;帶來非常出色的視覺體驗。 作為網頁設計的熱點趨勢&#xff0c;越來越多的網站應用了這項技術。 通常而言&#xff0c;滾動視差在…

計算機圖形學試題a卷,計算機圖形學復習題及答案

一、選擇題1.計算機繪圖設備一般使用( )顏色模型。A. RGBB. CMYC. HSVD. HLS2.在透視投影中&#xff0c;主滅點的最多個數是( )A1B2C3D43.多邊形填充時&#xff0c;下述論述錯誤的是( )A 多邊形被兩條掃描線分割成許多梯形&#xff0c;梯形的底邊在掃描線上&#xff0c;腰在多邊…

番石榴的弦類

在“ 檢查Java中的空&#xff0c;空或僅空白字符串”一文中 &#xff0c;我演示了Java生態系統&#xff08;標準Java&#xff0c; Guava &#xff0c; Apache Commons Lang和Groovy &#xff09;中用于檢查字符串是否為空&#xff0c;空或空白的常見方法。僅類似于C&#xff03…