做嵌入式開發(fā)知道這些,你才看起來像個高手挠日!

姓名:仝啟龍 ? 學號:17101223413

本文轉自

嵌入式資訊精選

【嵌牛導讀】

? ? ? ?做嵌入式系統(tǒng)開發(fā)疮绷,經常要接觸硬件,需要對數(shù)字電路和模擬電路要有一定的了解嚣潜,這樣才能深入的研究下去冬骚。下面我們簡單地介紹一下嵌入式開發(fā)中的一些硬件相關的概念。

【嵌牛鼻子】電平(Level)懂算,總線(Bus)只冻,片選(CS 或EN),譯碼(器)计技,高阻態(tài)喜德,驅動,三態(tài)門垮媒,電平的有效性住诸,時序,讀信號涣澡,寫信號,I/O端口丧诺,中斷入桂,萬用表,示波器驳阎,邏輯分析儀

【嵌牛提問】什么是電平(Level)抗愁?什么是總線(Bus)?什么是片選(CS 或EN)呵晚?什么是譯碼(器)蜘腌?什么是高阻態(tài)?什么是驅動饵隙?什么是三態(tài)門撮珠?什么是電平的有效性?什么是時序金矛?什么是讀信號芯急?什么是寫信號勺届?什么是I/O端口?什么是中斷娶耍?什么是萬用表免姿?什么是示波器?什么是邏輯分析儀榕酒?

【嵌牛正文】

電平(Level)

在數(shù)字電路中胚膊,分為高電平和低電平,分別用1和0表示想鹰。一個數(shù)字電路的管腳紊婉,總是存在一個電平的,要么高要么低杖挣,或者說要么1要到0(其實肩榕,還有另一種狀態(tài),后面會提到)惩妇。

總線(Bus)

在嵌入式系統(tǒng)中一定會有一塊處理器芯片株汉,此外,還有其它的芯片作為外部設備(后面簡稱外設)歌殃,這些芯片與處理器協(xié)作實現(xiàn)產品的功能乔妈。復雜的產品往往是由大量的芯片組成的。那么不可避免的是我們需要將所有的外設與處理器進行相連氓皱,最為簡單的是將所有的外設都采用獨立(注意是獨立)的信號線連接至處理器路召,這樣的好處是容易理解,但問題是:不可行波材。因為處理器芯片需要引出太多的線了股淡,從芯片的生產和產品的生產角度來看都不實際。加之廷区,處理器(在此我們假設處理器是單核的唯灵,而不是多核的)處理事務在微觀上是串行的,也就是說在某一時刻如果要對外設進行讀寫操作隙轻,那只可能是對大量外設中的一個進行埠帕,即多個外設不可能在微觀上被處理器同時訪問。需要注意的是玖绿,這里提出了微觀這一概念敛瓷,這是為了區(qū)別于宏觀。

從宏觀上來講斑匪,一個處理器中可以有多個任務同時運行呐籽,但這些任務在微觀上卻是一個一個運行的(后面會用串行來描述這里所說的“一個一個”),多任務的串行運行實現(xiàn)是由操作系統(tǒng)扮演著重要的角色來實現(xiàn)的【回到我們的話題宙刘,即然將每個外設采用獨立的信號線連到處理器不可行,且處理器在單一時間內只會對一個外設進行訪問牢酵,那我們能不能采用共享的信號線將所有的芯片連在一起呢悬包?這就是總線概念的由來。通俗的說馍乙,如果我們周圍有十個家庭布近,為了讓這十個家庭每兩個之間都能往來,我們并不需要為每兩個家庭修一條單獨(注意是單獨)的路(如果這樣丝格,要修45條路)撑瞧,而是可以修一條大路,然后显蝌,每個家都與大路相連预伺。

對于總線,我們往往說總線是處理器的曼尊,而其它的外設是掛在總線上的酬诀。那有一個問題,我們每一時間只能訪問掛在總線上的一個外設骆撇,那如何區(qū)分這些外設呢瞒御?和我們的路一樣,我們需要用地址來區(qū)分每一個家庭神郊,在總線上肴裙,也是采用地址來進行區(qū)分的。這樣涌乳,總線就根據(jù)其功能分為兩類了蜻懦。一類是地址總線,這一總線上的數(shù)據(jù)只會是從處理器向外設“流”夕晓,是單向的宛乃。另一類則是數(shù)據(jù)總線,用來將數(shù)據(jù)從處理器傳送到外設(從處理器的角度來說是寫操作)或者是將數(shù)據(jù)從外設傳送到處理器(從處理器的角度來說是讀操作)运授,顯然,數(shù)據(jù)總線是雙向的乔煞。也就是說吁朦,在我們的嵌入式系統(tǒng)中同時存在地址總線和數(shù)據(jù)總線將所有需要與處理器進行通訊的芯片連在一起的。

總線是有寬度的渡贾,正如我們的路分為“三車道”或是“四車道”逗宜,我們說32位處理器,是指其數(shù)據(jù)總線寬度是32位,也就是“有32輛車能同時跑”纺讲,顯然擂仍,寬度越是寬我們的處理器速度就越是快,因為我們從外設芯片存取數(shù)據(jù)的速度會更快熬甚,這就是為什么我們的計算機向64位發(fā)展的原因逢渔。同樣的,地址總線也是有寬度的乡括,對于32位處理器其最大寬度也就是32位肃廓。

總線的概念有了,那接下來的一個問題是诲泌,即使是每一個外設都有一個地址盲赊,那這一地址記在哪里呢?是放在外設芯片上嗎敷扫?如果這樣的話哀蘑,那就有一個問題,每一類外設的地址必須是不能重疊的葵第,而當一個產品中需要兩塊一樣的芯片的話绘迁,兩塊芯片的地址就無法區(qū)分了,看來這樣操作存在問題羹幸。還有脊髓,如果這樣的話每一個外設也得與(比如,32根)數(shù)據(jù)總線完全相連栅受,并監(jiān)聽數(shù)據(jù)線以了解處理器是不是在“叫”自己将硝,這樣很是復雜。此外屏镊,地址也有可能因為外設種類的增多而用光依疼。總的來說地址不能存放在外設芯片而芥,那如何讓外設知道律罢,此時它是被處理器招換從而需要進行讀寫訪問的呢?答案就是芯片的片選(CS棍丐, chip select)信號误辑,或者又號使能(ENable)信號。

片選(CS 或EN)

片選信號對于外設芯片來講歌逢,就是一個(也是一根)通知信號巾钉,告訴芯片“嘿,請開門秘案,我要放些東西進來砰苍,或是拿些東西走”潦匈,這里的東西只能是數(shù)據(jù),不可能是玉米棒什么的赚导。那有個問題茬缩,這個信號源從哪里來呢?顯然吼旧,只能從處理器來凰锡。那是不是也是像總線那樣,每一個芯片都共用一根線連在一起呢黍少?如果這樣寡夹,可能處理器“一叫開門”所有的芯片都將“門”打開了。如果是處理器寫數(shù)據(jù)厂置,那可能所有的芯片都被寫入同樣的數(shù)據(jù)菩掏。而取數(shù)據(jù)時,每個外設芯片都向外“扔”數(shù)據(jù)昵济,這一定會造成數(shù)據(jù)總線沖突智绸,因為有的芯片向總線上“扔”1,有的則“扔”0访忿,這種情況下處理器一定會“發(fā)瘋”的瞧栗,因為它不知道應當?shù)玫?還是0。

既然這樣海铆,那顯然不能將所有的片選信號連在一起了迹恐,只能是各芯片的片選信號獨立。前面提到了地址總線卧斟,我們是采用一根地址線連一個外設芯片呢殴边?還是采用其它的方法。如果采用一根地址線連一個外設芯片珍语,那可能最多只能掛接32個芯片了锤岸,這顯然不行。其實板乙,在現(xiàn)實中是偷,是采用32位的數(shù)字來表示一個外設芯片的地址的,比如1可以表示芯片A募逞,而6534可以表示另外一個芯片B蛋铆,等等。由此看來放接,理論上我們可以表示2的32次方(4294967296)個設備刺啦,之所以說理論上,是因為有的設備要占用大量的地址透乾。即然這樣洪燥,那還有一個問題,如果將32位的地址總線轉換成芯片的一根片選信號呢乳乌?這需要引入譯碼(器)的概念捧韵。

譯碼(器)

譯碼器將一個數(shù)據(jù)轉換成一根信號線上的信號,比如3/8譯碼器汉操,可以將一個位寬是3位的數(shù)據(jù)轉換成8根(2的3次方)完全獨立的信號線再来,當向數(shù)據(jù)側寫入二進制的011時,對應的是8根線的第3根磷瘤,當輸入二進制的111時芒篷,對應的是8根線中的最后一根。有了譯碼器采缚,處理器的地址線就簡化了针炉,只要32根地址線加上外面的譯碼器,就可以訪問大量的外設芯片了扳抽。外部設備的選擇問題篡帕,我們已經解決了,現(xiàn)在還得回頭看一看數(shù)據(jù)總線贸呢。


圖1 3/8譯碼器

在嵌入式系統(tǒng)中镰烧,所有芯片的數(shù)據(jù)總線可以理解成是直接相連的。之所以用了“可以理解”一詞楞陷,是因為為了提高總線的負載能力怔鳖,其中會加入總線驅動器。為了理解固蛾,我們看一看我們生活中的自來水结执,比如,在北京理論上可能所有的水管是連在一起的魏铅,但中間可能為了提高水壓昌犹,存在很多小的水站用來增加供水壓力,而不可能全北京所有的自來水自接來自一個水廠览芳。既然所有的數(shù)據(jù)總線是連在一起的斜姥,那就可能會有問題。當向外部設備寫數(shù)據(jù)時沧竟,處理器先向地址總線輸送目標外設的地址铸敏,地址譯碼器將其轉換成一根信號的片選信號送到了目標外設,目標外設收到這一信號后悟泵,將“門”打開杈笔。接下來處理器將要傳送到外設的數(shù)據(jù)往數(shù)據(jù)總線上一放,由于只有目標外設芯片打開了“門”糕非,所以數(shù)據(jù)只會進入到目標外設蒙具,而其它的外設什么也不會收到球榆。很好!處理器向外寫數(shù)據(jù)應當沒有問題禁筏,我們接下來看一看讀持钉。讀的話,由于數(shù)據(jù)是從外設輸送到處理器的篱昔,盡管我們采用和寫一樣的方法打開目標外設的“門”每强,但此時,其它的外設也在數(shù)據(jù)總線上州刽,它們有可能處于1也可能處于0空执,是不是會影響處理器讀取目標外設的數(shù)據(jù)呢?結果當然不會穗椅,但我們得引入另一個概念:高阻態(tài)辨绊。

高阻態(tài)

很顯然,當處理器從目標外設讀數(shù)據(jù)時匹表,我們希望其它沒有被選上的芯片的數(shù)據(jù)總線不會對目標外設所要傳送的數(shù)據(jù)有影響邢羔,那怎么辦呢?實際上桑孩,當芯片沒有被選中時拜鹤,其數(shù)據(jù)總線都處于高阻態(tài)。所謂的高阻態(tài)流椒,我們可以理解成這一管腳在外設芯片內部是斷開的敏簿,如此一來,顯然不會對處理器從目標外設讀取數(shù)據(jù)造成任何的影響了宣虾。我們說當一個芯片沒有被選中或是沒有被使能時惯裕,其數(shù)據(jù)總線一定是處于高阻態(tài)的。前面用了“門”的開和關來打比方绣硝,那“門”是指什么呢蜻势?是指外設的數(shù)據(jù)總線,片選信號的作用就是控制將外設的數(shù)據(jù)總線與處理器的數(shù)據(jù)總線相連或是斷開鹉胖。

驅動

總線上的數(shù)據(jù)是誰放上去的我們就說誰是那一時刻的驅動者握玛。也就是說,當處理器向外設寫數(shù)據(jù)時甫菠,它是在驅動數(shù)據(jù)總線的挠铲,而當處理器從目標外設讀取數(shù)據(jù)時,目標外設是在驅動數(shù)據(jù)總線的寂诱。對于地址總線拂苹,因為只可能從處理器向目標外設寫,所以地址總線永遠是由處理器驅動的痰洒。當一個芯片沒有被選中時瓢棒,我們說它并不驅動數(shù)據(jù)總線浴韭。

三態(tài)門

前面我們說到外設芯片的數(shù)據(jù)總線在沒有被選中時其處于高阻態(tài),當被選中時脯宿,其電平可能是高(1)或是低(0)囱桨。如此一來,我們說外設的數(shù)據(jù)總線其芯片管腳是屬于三態(tài)門的嗅绰,即存在高電平、低電平和高阻態(tài)搀继,三個狀態(tài)窘面。

電平的有效性

前面我們了解了什么是片選信號,也講到了三態(tài)門叽躯,需要指出的是片選信號通常不是三態(tài)門财边,其只存在兩個狀態(tài),即高電平或是低電平点骑。前面我們也說了酣难,片選信號是用來“開門”的,而片選信號又有高和低電平黑滴,那到底是高電平表示“開門”呢憨募?還是低電平?對于這一問題袁辈,我們稱如果一個電平對于一個片選信號表示“開門”那么它就是這一信號的有效電平菜谣。比如,對于一個片選信號晚缩,如果低電平表示“開門”尾膊,那么我們說這個片選信號是低電平有效的。雖然荞彼,在這里我們用片選信號來解釋電平的有效性冈敛,但是很多信號都存在有效性的問題,比如鸣皂,后面我們將要談的讀信號和寫信號都存在有效性問題抓谴。

時序

在前面我們說到當處理器要向外設芯片寫數(shù)據(jù)時,需要先將所需訪問的外設的地址放在地址總線上寞缝,然后齐邦,由譯碼器將地址總線上的數(shù)據(jù)轉換成片選信號,片選信號則使能目標外設芯片第租,接下來處理器寫數(shù)據(jù)到數(shù)據(jù)總線上措拇,從而完成一個寫操作。顯然慎宾,在處理器將數(shù)據(jù)寫到數(shù)據(jù)總線之前地址線上的數(shù)據(jù)必須一直保留一段時間丐吓,否則的話譯碼器不能長時間的使片選信號有效浅悉。當完成了數(shù)據(jù)的寫操作后,處理器就不需要保證地址總線上的地址有效了券犁。我們可以看出术健,這一系列的操作都有一定嚴格的時間順序的,這稱之為時序粘衬。時序描述了處理器與外部設備的交互信號 “規(guī)程”荞估,大家只有按照這一“規(guī)程”來操作,才能保證處理器與外部設備之間能正常的通訊稚新。這好比勘伺,我們的道路上的紅綠燈,如果我們行人和車輛不按照其指示來通行的話褂删,就會出現(xiàn)事故飞醉。通常,采用時序圖來描述芯片之間通訊的信號“規(guī)程”屯阀。


圖2 讀時序圖
圖3 讀時序圖

從圖中我們可以看出ADDRESS是表示地址總線的缅帘,DQ是表示數(shù)據(jù)總線的,CE是片選信號,且是低電平有效难衰,其寬度要保證在進行讀操作時總是有效的钦无。學會看時序圖對于做嵌入式系統(tǒng)開發(fā)非常有幫助,因為我們不可避免的要與芯片打交道盖袭。在時序圖中铃诬,通常會標識很多的時間需求信息。在寫啟動代碼時需要初始化各地址空間的片選地址寄存器和讀寫時序苍凛,時序的配置依據(jù)就是來自于外設芯片的時間需求趣席,這是芯片手冊很重要的一部分內容。當一個地址空間中存在多個外設芯片時醇蝴,我們需要考慮到其中最慢的外設芯片的時間需求宣肚,否則的話有的芯片就不能正常工作。

讀信號

當處理器需要從外設芯片讀取信號時悠栓,除了需要產生片選信號外霉涨,還需要告訴外設芯片這是一個讀操作,而不是一個寫操作惭适,這是通過讀信號來實現(xiàn)的笙瑟。

寫信號

前面講了讀信號,我想對于寫信號也就不難理解了癞志,這個信號用于告訴外設芯片往枷,這是一個向外設芯片寫數(shù)據(jù)的操作。

I/O端口

前面提到了外設(芯片)),現(xiàn)在是對外設進行分類的時候了错洁。大體上外設分為兩類秉宿,一類是存儲器外設,而另一類是非存儲器外設屯碴,后者常被稱之為I/O設備描睦,這里的I/O是Input/Output的簡寫,即輸入导而、輸出忱叭。可見今艺,I/O外設是一個非常寬泛的概念韵丑。對于存儲器外設,其特點是洼滚,它所占用的空間是連續(xù)的一片。比如技潘,SDRAM內存就是屬于存儲器外設遥巴,如果其容量是8M字節(jié),那么其占用的地址空間也會是8M的享幽。與存儲器外設所不同的是铲掐,I/O外設所點用的地址一般都很少。比如一個I/O外設可能存在多個控制寄存器值桩,這些控制寄存器從處理器來看就是多個I/O端口(地址)摆霉,向這個地址寫數(shù)據(jù)就是向外設所對應的寄存器寫數(shù)據(jù),反之奔坟,也可以是讀携栋。比如,一個串口芯片可能存在多個寄存器咳秉,一個用來查詢芯片的狀態(tài)婉支,一個用來設置芯片的功能,另一個用來讀取芯片從串口線所收到的數(shù)據(jù)澜建,最后向挖,還有一個用來向芯片寫數(shù)據(jù)以向串口線上發(fā)送數(shù)據(jù)。對于這一串口芯片的寄存器炕舵,從處理器的角度來看何之,都是獨立的I/O端口。

I/O端口存在讀咽筋、寫性問題溶推,有的端口是只讀的,有的端口是只寫的,還有的端口是即可讀也可寫悼潭,其讀寫性是由外設芯片的寄存器所決定的庇忌,在芯片的數(shù)據(jù)手冊中能找到。需要指出的是舰褪,有些存儲器外設也存在I/O端口皆疹,以對其進行一定的控制。從I/O端口這一名字來看占拍,對于處理器來說略就,就是對從外面讀入數(shù)據(jù)或是向外面輸出數(shù)據(jù)的一個接口總稱。

中斷

中斷從硬件的角度來看就是一個能產生高晃酒、低電平的一根信號線表牢,但理解它需要從處理器的角度出發(fā)。我們說過了贝次,處理器從微觀上看崔兴,所做的工作是按順序進行的,其對程序的處理只能是一條指令一條指令的執(zhí)行蛔翅。如果存在需要對外設芯片進行訪問敲茄,而有可能從處理器發(fā)出讀、寫命令后山析,由于外設通常比處理器慢很多堰燎,所以外設芯片需要一些時間來準備好所需的數(shù)據(jù)。在這種情況下笋轨,如果處理器一直等外設芯片的返回數(shù)據(jù)再執(zhí)行后續(xù)的指令的話秆剪,將耗費寶貴的時間,這些時間完全可以用來做其它的工作爵政。別忘了仅讽,從宏觀上看來處理器常常是多任務的,任務是指操作系統(tǒng)所提供的調度單位钾挟。當一個任務因為等待外設芯片的數(shù)據(jù)而阻塞時何什,我們可以切換到另外的任務,從而提高處理效率等龙。這就有一個問題处渣,當處理器去處理另一個任務時,如果外設芯片的數(shù)據(jù)好了的話蛛砰,如果告訴處理器呢罐栈?對了!就是通過中斷信號泥畅。中斷信號的高简逮、低電平可以用來表示是否有中斷需要處理器注意以處理特定的事件(比如,外設數(shù)據(jù)準備好了的事件)眯搭。

由此看來痴突,中斷的引入能大大的提高處理器的運用效率展运。為了使用處理器上的中斷,一開始我們需要初始化好處理器的中斷控制器,比如安裝好所需的中斷服務程序或稱之為ISR(Interrupt Service Routine),然后棠众,打開中斷屏蔽位。中斷服務程序中需要做如下的操作:

從外設讀入或向外設寫數(shù)據(jù)有决。讀還是寫通常需要讀取外設的中斷狀態(tài)寄存器來決定闸拿。

清除外設的中斷信號。我們知道书幕,中斷信號是由外設芯片驅動的新荤,為了告訴外設芯片,處理器已經處理完了所需做的工作台汇,那么處理器需要通過一定的方式通知外設芯片苛骨。這種方式就是向外設芯片的寄存器中的某一位寫入一個數(shù)據(jù),比如苟呐,可能是寫入1表示清中斷痒芝,也可能是寫入0表示清中斷,這通常在外設的數(shù)據(jù)手冊中能查到掠抬。當外設收到了處理器的清中斷請求后吼野,其就會驅動中斷線使其無效校哎。比如两波,一個外設的中斷線是當其為低電平表示有中斷,將其從低電平變?yōu)楦唠娖骄褪球寗訛闊o效闷哆。

清除處理器的中斷信號標識腰奋。處理器中往往也會保存外部中斷信號是否發(fā)生過,當我們處理完了外設芯片的中斷時抱怔,我們也需要清除處理器上的標識劣坊,從而為下一次中斷做準備。需要注意的是屈留,清外設的中斷必須發(fā)生在請?zhí)幚砥髦袛鄻俗R之前局冰!

中斷還存在一個觸發(fā)方式問題。有兩種觸發(fā)方式 灌危,一種是電平觸發(fā)康二,另一種是沿觸發(fā)。電平觸發(fā)是指電平的高低表示外設是否有中斷勇蝙,而沿觸發(fā)則是能過中斷線上的電平的升或降來表示的沫勿,顯然,存在兩種沿觸發(fā)方式。一種是中斷線從低電平變?yōu)楦唠娖讲ⅲ覀兎Q之為上升沿觸發(fā)诫惭,另一處是中斷線從高電平轉換為低電平,我們稱之為下降沿觸發(fā)蔓挖∠ν粒總的來說中斷的觸發(fā)方式有電平觸發(fā)、上升沿觸發(fā)和下降沿觸發(fā)时甚。電平觸發(fā)方式中處理中中斷設置很重要的一個步驟隘弊。

萬用表

萬用表通常是用來查看電平的高低、電阻的大小等的荒适,是常用且必不可少的工具之一梨熙。在嵌入式系統(tǒng)開發(fā)中,我們常用的是數(shù)字萬用表刀诬。

示波器

在嵌入式系統(tǒng)開發(fā)中咽扇,我們不可避免的要與外設芯片打交道。調試驅動程序時陕壹,除了需要完全看明白芯片的數(shù)據(jù)手冊质欲,且在軟件高度的過程中,還需要看我們所期望的信號電平是否發(fā)生在芯片上糠馆。比如嘶伟,我們在寫驅動程序時,需要通過寫I/O端口來對外設芯片進行操作又碌,當寫相應的I/O端口時九昧,我們知道所對應芯片的片選信號應當有效,有時毕匀,我們需要驗證是否按預期發(fā)生了铸鹰,這就需要用到示波器。一般的示波器是能同時觀測兩個信號線的信號狀態(tài)的皂岔。示波器都提供一定的功能蹋笼,比如設置信號撲捉的方式等等。示波器很重要的一個參數(shù)據(jù)是其采集頻率躁垛,根據(jù)Nyquist采集定理剖毯,如果我們想用示波器查看頻率是100M赫茲的信號,那么其采樣頻率必須至少是其兩倍教馆,即200M赫茲逊谋。有人可能會問:為什么不用萬用表來看呢?因為萬用表的采集頻率很底活玲,無法采集到很快的信號變化涣狗。

邏輯分析儀

簡單的說邏輯分析器就是具有很多信號通道的示波器谍婉。通過邏輯分析儀,我們可以看到地址總線和數(shù)據(jù)總線上的數(shù)據(jù)镀钓。邏輯分析儀都提供一定的編程能力穗熬,用于編程什么時候開始對總線上的數(shù)據(jù)進行采集。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末丁溅,一起剝皮案震驚了整個濱河市唤蔗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窟赏,老刑警劉巖妓柜,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涯穷,居然都是意外死亡棍掐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門拷况,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作煌,“玉大人,你說我怎么就攤上這事赚瘦∷谑模” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵起意,是天一觀的道長鹰服。 經常有香客問我,道長揽咕,這世上最難降的妖魔是什么悲酷? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮心褐,結果婚禮上舔涎,老公的妹妹穿的比我還像新娘笼踩。我一直安慰自己逗爹,他們只是感情好,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布嚎于。 她就那樣靜靜地躺著掘而,像睡著了一般。 火紅的嫁衣襯著肌膚如雪于购。 梳的紋絲不亂的頭發(fā)上袍睡,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音肋僧,去河邊找鬼斑胜。 笑死控淡,一個胖子當著我的面吹牛,可吹牛的內容都是我干的止潘。 我是一名探鬼主播掺炭,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼凭戴!你這毒婦竟也來了涧狮?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤么夫,失蹤者是張志新(化名)和其女友劉穎者冤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體档痪,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡涉枫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了腐螟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拜银。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖遭垛,靈堂內的尸體忽然破棺而出尼桶,到底是詐尸還是另有隱情,我是刑警寧澤锯仪,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布泵督,位于F島的核電站,受9級特大地震影響庶喜,放射性物質發(fā)生泄漏小腊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一久窟、第九天 我趴在偏房一處隱蔽的房頂上張望秩冈。 院中可真熱鬧,春花似錦斥扛、人聲如沸入问。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芬失。三九已至,卻和暖如春匾灶,著一層夾襖步出監(jiān)牢的瞬間棱烂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工阶女, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留颊糜,地道東北人哩治。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像衬鱼,于是被迫代替她去往敵國和親锚扎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容