Arduino 基本函數(shù)

數(shù)字I/O

pinMode()
void pinMode (uint8_t pin, uint8_t mode)

設(shè)置引腳模式

配置引腳為輸出或輸出模式.

參數(shù):
pin 引腳編號(hào)
mode: INPUT, OUTPUT, 或 INPUT_PULLUP.

例子:

int ledPin = 13; // LED connected to digital pin

void setup()
{
 pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
 digitalWrite(ledPin, HIGH); // sets the LED on
 delay(1000); // waits for a second
 digitalWrite(ledPin, LOW); // sets the LED off
 delay(1000); // waits for a second
}

注解:
模擬引腳也可以當(dāng)作數(shù)字引腳使用, 編號(hào)為14(對(duì)應(yīng)模擬引腳0)到19(對(duì)應(yīng)模擬引腳5).


digitalWrite()
void digitalWrite (uint8_t pin, uint8_t value)

寫(xiě)數(shù)字引腳
寫(xiě)數(shù)字引腳, 對(duì)應(yīng)引腳的高低電平. 在寫(xiě)引腳之前, 需要將引腳設(shè)置為OUTPUT模式.

參數(shù):
pin 引腳編號(hào)
value HIGH 或 LOW

用法:

int ledPin = 13; // LED connected to digital pin
void setup()
{
 pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
 digitalWrite(ledPin, HIGH); // 點(diǎn)亮LED
 delay(1000); // 等待1秒
 digitalWrite(ledPin, LOW); // 關(guān)
 delay(1000); // waits for a second
}

注解:
模擬引腳也可以當(dāng)作數(shù)字引腳使用, 編號(hào)為14(對(duì)應(yīng)模擬引腳0)到19(對(duì)應(yīng)模擬引腳5).


digitalRead()
int digitalRead (uint8_t pin)   

讀數(shù)字引腳
讀數(shù)字引腳, 返回引腳的高低電平. 在讀引腳之前, 需要將引腳設(shè)置為INPUT模式.

參數(shù):
pin 引腳編號(hào)

返回:
HIGH或LOW

int ledPin = 13; // LED connected to digital pin
int inPin = 7; // pushbutton connected to digital pin 7
int val = 0; // variable to store the read value

void setup()
{
 pinMode(ledPin, OUTPUT); // sets the digital pin as output
 pinMode(inPin, INPUT); // sets the digital pin 7 as input
}

void loop()
{
 val = digitalRead(inPin); // read the input pin
 digitalWrite(ledPin, val); // sets the LED to the buton's value
}

注解:
如果引腳沒(méi)有鏈接到任何地方, 那么將隨機(jī)返回 HIGH 或 LOW.


模擬I/O

analogReference()
void analogReference (uint8_t type)

配置參考電壓
配置模式引腳的參考電壓. 函數(shù) analogRead 在讀取模擬值之后, 將根據(jù)參考電壓將擬值轉(zhuǎn)換到[0,10]區(qū)間.

有以下類(lèi)型:
DEFAULT : 默認(rèn)5V.
INTERNAL: 低功耗模式.
ATmega168和ATmega8對(duì)應(yīng)1.1V到2.56V.
EXTERNAL: 擴(kuò)展模式.
通過(guò)AREF引腳獲取參考電壓.

參數(shù):
type 參考類(lèi)型(DEFAULT/INTERNAL/EXTERNAL)


analogRead()
int analogRead (uint8_t pin)  

讀模擬引腳
讀模擬引腳, 返回[0-10]之間的值. 每讀一次需要花1微妙的時(shí)間.

參數(shù):
pin 引腳編號(hào)

返回:
0到10之間的值

例子:

int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3
 // outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup()
{
 Serial.begin(9600); // setup serial
}
void loop()
{
 val = analogRead(analogPin); // read the input pin
 Serial.println(val); // debug value
}

analogWrite()
void analogWrite (uint8_t pin, int value)   

寫(xiě)模擬引腳

參數(shù):
pin 引腳編號(hào)
value 0到255之間的值, 0對(duì)應(yīng)off, 255對(duì)應(yīng)on

寫(xiě)一個(gè)模擬值(PWM)到引腳. 可以用來(lái)控制LED的亮度, 或者控制電機(jī)的轉(zhuǎn)速. 在執(zhí)行該操作后, 應(yīng)該等待一定時(shí)間后才能對(duì)該引腳進(jìn)行下一次的讀或?qū)懖僮? PWM的頻率大約為490Hz.

在一些基于ATmega168的新的Arduino控制板(如Mini 和BT)中, 該函數(shù)支持以下引腳: 3, 5, 6, 9, 10格嘁。 在基于ATmega8的型號(hào)中支持9, 10引腳.

例子:

int ledPin = 9; // LED connected to digital pin 9
int analogPin = 3; // potentiometer connected to analog pin 3
int val = 0; // variable to store the read value
void setup()
{
 pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop()
{
 val = analogRead(analogPin); // read the input pin
 analogWrite(ledPin, val / 4); // analogRead values go from 0 to 10, analogWrite values from 0 to 255
}

高級(jí)I/O

shiftOut()
void shiftOut (uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, byte val)   

位移輸出函數(shù)

輸入value數(shù)據(jù)后Arduino會(huì)自動(dòng)把數(shù)據(jù)移動(dòng)分配到8個(gè)并行輸出端. 其中dataPin為連接DS的引腳號(hào), clockPin為連接SH_CP的引腳號(hào), bitOrder為設(shè)置數(shù)據(jù)位移順序, 分別為高位先入MSBFIRST或者低位先入LSBFIRST.

參數(shù):
dataPin 數(shù)據(jù)引腳
clockPin 時(shí)鐘引腳
bitOrder 移位順序 ( MSBFIRST 或 LSBFIRST)
val 數(shù)據(jù)

// Do this for MSBFIRST serial
int data = 500;

// shift out highbyte
shiftOut(dataPin, clock, MSBFIRST, (data >> 8)); 

// shift out lowbyte
shiftOut(dataPin, clock, MSBFIRST, data);

// Or do this for LSBFIRST serial
data = 500;

// shift out lowbyte
shiftOut(dataPin, clock, LSBFIRST, data); 

// shift out highbyte
shiftOut(dataPin, clock, LSBFIRST, (data >> 8));

pulseIn()

unsigned long pulseIn (uint8_t pin, uint8_t state, unsigned long timeout)           

讀脈沖

讀引腳的脈沖, 脈沖可以是 HIGH 或 LOW. 如果是 HIGH, 函數(shù)將先等引腳變?yōu)楦唠娖? 然后 開(kāi)始計(jì)時(shí), 一直到變?yōu)榈碗娖綖橹? 返回脈沖持續(xù)的時(shí)間長(zhǎng)短, 單位為毫秒. 如果超時(shí)還沒(méi)有 讀到的話, 將返回0.

參數(shù):
1 pin 引腳編號(hào)
2 state 脈沖狀態(tài)
3 timeout 超時(shí)時(shí)間

下面的例子演示了統(tǒng)計(jì)高電平的繼續(xù)時(shí)間:

int pin = 7;
unsigned long duration;
void setup()
{
 pinMode(pin, INPUT);
}
void loop()
{
  duration = pulseIn(pin, HIGH);
}

時(shí)間

millis()
unsigned long millis (void)

毫秒時(shí)間
獲取機(jī)器運(yùn)行的時(shí)間長(zhǎng)度, 單位毫秒. 系統(tǒng)最長(zhǎng)的記錄時(shí)間為9小時(shí)分, 如果超出時(shí)間將從0開(kāi)始. 警告:時(shí)間為 unsigned long類(lèi)型, 如果用 int 保存時(shí)間將得到錯(cuò)誤結(jié)果。

delay(ms)
void delay (unsigned long ms)  

延時(shí)(毫秒)
延時(shí), 單位毫秒(1秒有1000毫秒).

警告: 參數(shù)為unsigned long, 因此在延時(shí)參數(shù)超過(guò)767(int型最大值)時(shí), 需要用"UL"后綴表示為無(wú)符號(hào) 長(zhǎng)整型, 例如: delay(60000UL);. 同樣在參數(shù)表達(dá)式, 切表達(dá)式中有int類(lèi)型時(shí), 需要強(qiáng)制轉(zhuǎn)換為 unsigned long類(lèi)型, 例如: delay((unsigned long)tdelay * 100UL);.

例子設(shè)置
引腳對(duì)應(yīng)的LED等以1秒頻率閃爍:

int ledPin = 13; // LED connected to digital pin

void setup()
{
 pinMode(ledPin, OUTPUT); // sets the digital pin as output
}

void loop()
{
 digitalWrite(ledPin, HIGH); // sets the LED on
 delay(1000); // waits for a second
 digitalWrite(ledPin, LOW); // sets the LED off
 delay(1000); // waits for a second
}

delayMicroseconds(us)
void delayMicroseconds (unsigned int us)  

延時(shí)(微秒)
延時(shí), 單位為微妙(1毫秒有1000微妙). 如果延時(shí)的時(shí)間有幾千微妙, 那么建議使用 delay 函數(shù). 目前參數(shù)最大支持16383微妙(不過(guò)以后的版本中可能會(huì)變化).

以下代碼向第8號(hào)引腳發(fā)送脈沖, 每次脈沖持續(xù)50微妙的時(shí)間.

int outPin = 8; // digital pin 8
void setup()
{
 pinMode(outPin, OUTPUT); // sets the digital pin as output
}

void loop()
{
 digitalWrite(outPin, HIGH); // sets the pin on
 delayMicroseconds(50); // pauses for 50 microseconds
 digitalWrite(outPin, LOW); // sets the pin off
 delayMicroseconds(50); // pauses for 50 microseconds
}

數(shù)學(xué)庫(kù)

min()
#define min(a, b) ((a)<(b)?(a):(b))

最小值
取兩者之間最小值. 例如:

sensVal = min(sensVal, 100); // assigns sensVal to the smaller of sensVal or 100
 // ensuring that it never gets above 100.

max()
#define max(a, b) ((a)>(b)?(a):(b))

最大值
取兩者之間最大值. 例如:

sensVal = max(senVal, 20); // assigns sensVal to the larger of sensVal or 20
 // (effectively ensuring that it is at least 20)
abs()
abs(x) ((x)>0?(x):-(x))

求絕對(duì)值


constrain()

#define constrain(amt, low, high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))

調(diào)整到區(qū)間

如果值 amt 小于 low, 則返回 low; 如果 amt 大于 high, 則返回 high; 否則, 返回 amt . 一般可以用于將值歸一化到某個(gè)區(qū)間.

例如:

sensVal = constrain(sensVal, 10, 150);
// limits range of sensor values to between 10 and 150

map()
long map ( long x, long in_min, long in_max, long out_min, long out_max)   

等比映射
將位于[in_min, in_max]之間的x映射到[out_min, out_max].

參數(shù):
x 要映射的值
in_min 映射前區(qū)間
in_max 映射前區(qū)間
out_min 映射后區(qū)間
out_max 映射后區(qū)間

例如下面的代碼中用 map 將模擬量從[0,10]映射到[0,255]區(qū)間:

// Map an analog value to 8 bits (0 to 255)
void setup() {}
void loop()
{
 int val = analogRead(0);
 val = map(val, 0, 10, 0, 255);
 analogWrite(9, val);
}

long map(long x, long in_min, long in_max, long out_min, long out_max)
{
 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

pow()
double pow (float base, float exponent)

指數(shù)函數(shù)


sqrt()
double sqrt (double x)

//開(kāi)平方


三角函數(shù)

sin(),cos(),tan()
float sin (float rad);//正弦函數(shù)

float cos (float rad);//余弦函數(shù)

float tan (float rad);//正切函數(shù)

隨機(jī)數(shù)

randomSeed()
void randomSeed ( unsigned int seed )  

設(shè)置隨機(jī)種子
可以用當(dāng)前時(shí)間作為隨機(jī)種子. 隨機(jī)種子的設(shè)置對(duì)產(chǎn)生的隨機(jī)序列有影響.

參數(shù):
seed 隨機(jī)種子


random()
long random (long howbig)  

生成隨機(jī)數(shù)
生成[0, howbig-1]范圍的隨機(jī)數(shù).

參數(shù):
howbig 最大值

long random (long howsmall, long howbig)   

生成隨機(jī)數(shù)

生成[howsmall, howbig-1]范圍的隨機(jī)數(shù).

參數(shù):
howsmall 最小值
howbig 最大值


位操作

位操作

#define lowByte(w) ((w) & 0xff)  //取低字節(jié)
#define highByte(w) ((w) >> 8)  //取高字節(jié)
#define bitRead(value, bit) (((value) >> (bit)) & 0x01) //讀一個(gè)bit
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) //寫(xiě)一個(gè)bit
#define bitSet(value, bit)   ((value) |= (1UL << (bit))) //設(shè)置一個(gè)bit
#define bitClear(value, bit) ((value) &= ~(1UL << (bit))) //清空一個(gè)bit
#define bit(b) (1 << (b)) //生成相應(yīng)bit 

設(shè)置中斷函數(shù)

achInterrupt()
void achInterrupt (uint8_t interruptNum, void(*)(void)userFunc, int mode)

設(shè)置中斷
指定中斷函數(shù). 外部中斷有0和1兩種, 一般對(duì)應(yīng)2號(hào)和3號(hào)數(shù)字引腳.

參數(shù):
interrupt 中斷類(lèi)型, 0或1
fun 對(duì)應(yīng)函數(shù) mode 觸發(fā)方式. 有以下幾種:

  • LOW 低電平觸發(fā)中斷
  • CHANGE 變化時(shí)觸發(fā)中斷
  • RISING 低電平變?yōu)楦唠娖接|發(fā)中斷
  • FALLING 高電平變?yōu)榈碗娖接|發(fā)中斷

注解: 在中斷函數(shù)中 delay 函數(shù)不能使用, millis 始終返回進(jìn)入中斷前的值. 讀串口數(shù)據(jù)的話, 可能會(huì)丟失. 中斷函數(shù)中使用的變量需要定義為 volatile 類(lèi)型. 下面的例子如果通過(guò)外部引腳觸發(fā)中斷函數(shù), 然后控制LED的閃爍.

int pin = 13;
volatile int state = LOW;

void setup()
{
 pinMode(pin, OUTPUT);
 achInterrupt(0, blink, CHANGE);
}

void loop()
{
 digitalWrite(pin, state);
}

void blink()
{
 state = !state;
}

detachInterrupt()
void detachInterrupt (uint8_t interruptNum)

取消中斷
取消指定類(lèi)型的中斷.

參數(shù):
interrupt 中斷的類(lèi)型.


interrupts()
#define interrupts() sei()

開(kāi)中斷

例子:

void setup() {}
void loop()
{
 noInterrupts();
 // critical, time-sensitive code here
 interrupts();
 // other code here
}

noInterrupts()
#define noInterrupts() cli()

關(guān)中斷

例子:

void setup() {}
void loop()
{
 noInterrupts();
 // critical, time-sensitive code here
 interrupts();
 // other code here
}

串口通訊

void begin (long) 打開(kāi)串口
uint8_t available (void) 有串口數(shù)據(jù)返回真
int read (void) //讀串口
void flush (void) //刷新串口數(shù)據(jù)
virtual void write (uint8_t) //寫(xiě)串口 </pre>
begin()
void HardwareSerial::begin (long speed)  

打開(kāi)串口

參數(shù):
speed 波特率


available()

獲取串口上可讀取的數(shù)據(jù)的字節(jié)數(shù)。該數(shù)據(jù)是指已經(jīng)到達(dá)并存儲(chǔ)在接收緩存(共有64字節(jié))中绞蹦。available()繼承自Stream實(shí)用類(lèi)懊纳。

語(yǔ)法:

Serial.available()
Arduino Mega only: Serial1.available() Serial2.available() Serial3.available()

參數(shù): 無(wú)

返回值:
返回可讀取的字節(jié)數(shù)

示例:

int incomingByte = 0; // for incoming serial data
void setup() {
 Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}

void loop() {
 // send data only when you receive data:
 if (Serial.available() > 0) {
 // read the incoming byte:
 incomingByte = Serial.read();
 // say what you got:
 Serial.print("I received: ");
 Serial.println(incomingByte, DEC);
 }
}

Arduino Mega example:

void setup() {
 Serial.begin(9600);
 Serial1.begin(9600);
}
void loop() {
 // read from port 0, send to port 1:
 if (Serial.available()) {
 int inByte = Serial.read();
 Serial1.print(inByte, BYTE);
 }
 // read from port 1, send to port 0:
 if (Serial1.available()) {
 int inByte = Serial1.read();
 Serial.print(inByte, BYTE);
 }
}

read()

讀串口數(shù)據(jù)嘀倒,read()繼承自Stream實(shí)用類(lèi)页藻。

語(yǔ)法:

Serial.read()
Arduino Mega only: Serial1.read() Serial2.read() Serial3.read()

參數(shù): 無(wú)

返回值: 串口上第一個(gè)可讀取的字節(jié)(如果沒(méi)有可讀取的數(shù)據(jù)則返回-1)- int型软免。

示例:

int incomingByte = 0; // 用于存儲(chǔ)從串口讀到的數(shù)據(jù)
void setup() {
 Serial.begin(9600); // 打開(kāi)串呂周循,設(shè)置速率為9600 bps
}
void loop() {
 // 只在收到數(shù)據(jù)時(shí)發(fā)送數(shù)據(jù)
 if (Serial.available() > 0) {
 // 讀取傳入的字節(jié)
 incomingByte = Serial.read();
 // 指示你收到的數(shù)據(jù)
 Serial.print("I received: ");
 Serial.println(incomingByte, DEC);
 }
}

flush()

刷新串口數(shù)據(jù)


print()

往串口發(fā)數(shù)據(jù)强法,無(wú)換行描述 以人類(lèi)可讀的ASCII碼形式向串口發(fā)送數(shù)據(jù)万俗,該函數(shù)有多種格式。整數(shù)的每一數(shù)位將以ASCII碼形式發(fā)送饮怯。浮點(diǎn)數(shù)同樣以ASCII碼形式發(fā)送闰歪,默認(rèn)保留小數(shù)點(diǎn)后兩位。字節(jié)型數(shù)據(jù)將以單個(gè)字符形式發(fā)送硕淑。字符和字符串會(huì)以其相應(yīng)的形式發(fā)送课竣。

例如:

 Serial.print(78) 發(fā)送 "78"
 Serial.print(1.456) 發(fā)送 "1.456"
 Serial.print('N') 發(fā)送 "N"
 Serial.print("Hello world.") 發(fā)送 "Hello world."

可選的第二個(gè)參數(shù)用于指定數(shù)據(jù)的格式。允許的值為:BIN (binary二進(jìn)制), OCT (octal八進(jìn)制), DEC (decimal十進(jìn)制), HEX (hexadecimal十六進(jìn)制)置媳。對(duì)于浮點(diǎn)數(shù)于樟,該參數(shù)指定小數(shù)點(diǎn)的位數(shù)。

例如:

 Serial.print(78, BIN) gives "1000"
 Serial.print(78, OCT) gives "6"
 Serial.print(78, DEC) gives "78"
 Serial.print(78, HEX) gives "4E"
 Serial.println(1.456, 0) gives "1"
 Serial.println(1.456, 2) gives "1.46"
 Serial.println(1.456, 4) gives "1.4560"

你可以用F()把待發(fā)送的字符串包裝到flash存儲(chǔ)器拇囊。例如:

 Serial.print(F(“Hello World”))

要發(fā)送單個(gè)字節(jié)數(shù)據(jù)迂曲,請(qǐng)使用Serial.write()。

語(yǔ)法:

Serial.print(val)
Serial.print(val, format)

參數(shù):
val: 要發(fā)送的數(shù)據(jù)(任何數(shù)據(jù)類(lèi)型)
format: 指定數(shù)字的基數(shù)(用于整型數(shù))或者小數(shù)的位數(shù)(用于浮點(diǎn)數(shù))寥袭。

返回值:
size_t (long): print()返回發(fā)送的字節(jié)數(shù)(可丟棄該返回值)路捧。

示例:

/*
Uses a FOR loop for data and prints a number in various formats.
*/
int x = 0; // variable
void setup() {
 Serial.begin(9600); // open the serial port at 9600 bps:
}
void loop() { 
 // print labels
 Serial.print("NO FORMAT"); // prints a label
 Serial.print("\t"); // prints a tab
 Serial.print("DEC");
 Serial.print("\t");
 Serial.print("HEX");
 Serial.print("\t");
 Serial.print("OCT");
 Serial.print("\t");
 Serial.print("BIN");
 Serial.print("\t");
 for(x=0; x< 64; x++){ // only part of the ASCII chart, change to suit
 // print it out in many formats:
 Serial.print(x); // print as an ASCII-encoded decimal - same as "DEC"
 Serial.print("\t"); // prints a tab
 Serial.print(x, DEC); // print as an ASCII-encoded decimal
 Serial.print("\t"); // prints a tab
 Serial.print(x, HEX); // print as an ASCII-encoded hexadecimal
 Serial.print("\t"); // prints a tab
 Serial.print(x, OCT); // print as an ASCII-encoded octal
 Serial.print("\t"); // prints a tab
 Serial.println(x, BIN); // print as an ASCII-encoded binary
 // then adds the carriage return with "println"
 delay(200); // delay 200 milliseconds
 }
 Serial.println(""); // prints another carriage return
}

編程技巧: 在版本1.0時(shí),串口傳輸是異步的传黄,Serial.print()會(huì)在數(shù)據(jù)發(fā)送完成前返回杰扫。


println()

往串口發(fā)數(shù)據(jù),類(lèi)似Serial.print()膘掰,但有換行


write()

寫(xiě)二進(jìn)制數(shù)據(jù)到串口章姓,數(shù)據(jù)是一個(gè)字節(jié)一個(gè)字節(jié)地發(fā)送的,若以字符形式發(fā)送數(shù)字請(qǐng)使用print()代替识埋。

語(yǔ)法:

Serial.write(val)
Serial.write(str)
Serial.write(buf, len)
Arduino Mega也支持:Serial1, Serial2, Serial3(在Serial的位置)

參數(shù):

val: 作為單個(gè)字節(jié)發(fā)送的數(shù)據(jù)
str: 由一系列字節(jié)組成的字符串
buf: 同一系列字節(jié)組成的數(shù)組
len: 要發(fā)送的數(shù)組的長(zhǎng)度

返回:
byte

write()會(huì)返回發(fā)送的字節(jié)數(shù)凡伊,所以讀取該返回值是可選的。

示例:

void setup(){
 Serial.begin(9600);
}
void loop(){
 Serial.write(45); //以二進(jìn)制形式發(fā)送數(shù)字45
 int bytesSent = Serial.write(“hello”); //發(fā)送字符串“hello”  并返回該字符串的長(zhǎng)度窒舟。
}

peak()

描述: 返回收到的串口數(shù)據(jù)的下一個(gè)字節(jié)(字符)系忙,但是并不把該數(shù)據(jù)從串口數(shù)據(jù)緩存中清除。就是說(shuō)惠豺,每次成功調(diào)用peak()將返回相同的字符银还。與read()一樣,peak()繼承自Stream實(shí)用類(lèi)洁墙。

語(yǔ)法: 可參照Serail.read()


serialEvent()

描述: 當(dāng)串口有數(shù)據(jù)到達(dá)時(shí)調(diào)用該函數(shù)(然后使用Serial.read()捕獲該數(shù)據(jù))见剩。
注意:目前serialEvent()并不兼容于Esplora, Leonardo, 或 Micro。

語(yǔ)法:

void serialEvent(){
//statements
}
//Arduino Mega only:
void serialEven(){
//statements
}
void serialEven(){
//statements
}
void serialEven(){
//statements
}

statements可以是任何有效的語(yǔ)句扫俺。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市固翰,隨后出現(xiàn)的幾起案子狼纬,更是在濱河造成了極大的恐慌羹呵,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疗琉,死亡現(xiàn)場(chǎng)離奇詭異冈欢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)盈简,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)凑耻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人柠贤,你說(shuō)我怎么就攤上這事香浩。” “怎么了臼勉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵邻吭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我宴霸,道長(zhǎng)囱晴,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任瓢谢,我火速辦了婚禮畸写,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘氓扛。我一直安慰自己枯芬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布幢尚。 她就那樣靜靜地躺著破停,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尉剩。 梳的紋絲不亂的頭發(fā)上真慢,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音理茎,去河邊找鬼黑界。 笑死,一個(gè)胖子當(dāng)著我的面吹牛皂林,可吹牛的內(nèi)容都是我干的朗鸠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼础倍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼烛占!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤忆家,失蹤者是張志新(化名)和其女友劉穎犹菇,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體芽卿,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揭芍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卸例。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片称杨。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖筷转,靈堂內(nèi)的尸體忽然破棺而出姑原,到底是詐尸還是另有隱情,我是刑警寧澤旦装,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布页衙,位于F島的核電站,受9級(jí)特大地震影響阴绢,放射性物質(zhì)發(fā)生泄漏店乐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一呻袭、第九天 我趴在偏房一處隱蔽的房頂上張望眨八。 院中可真熱鬧,春花似錦左电、人聲如沸廉侧。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)段誊。三九已至,卻和暖如春栈拖,著一層夾襖步出監(jiān)牢的瞬間连舍,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工涩哟, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留索赏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓贴彼,卻偏偏與公主長(zhǎng)得像潜腻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子器仗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容