我買了乙個天貓精靈,感覺好可愛哦~
興趣在物聯網,好好學習,下次換工作的時候,就可以去物聯網的公司,智慧型家居實在是太暖了,可以給人帶來快樂,陪伴,讓生活更容易。
esp8266有兩個串列埠,現在只是用串列埠0的列印資訊功能,模組上電後會預設輸出一些資訊。
esp8266-12f模組的晶振是26mhz,所以串列埠0的預設波特率是74880.
26mhz,波特率74880列印完預設資訊之後的波特率就可以自己設定了,設定波特率找到2個函式。40mhz,波特率115200
//串列埠初始化,可以設定串列埠0和串列埠1的波特率
void
uart_init
(uartbautrate uart0_br, uartbautrate uart1_br)
;//設定串列埠波特率
void
uart_setbaudrate
(uint8 uart_no,uint32 baud_rate)
;
串列埠的兩個標頭檔案和乙個原始檔要新增到相應目錄,「uart_register.h」、「uart.h」、「uart.c」;開啟uart.h,找到串列埠波特率範圍在300~3686400。
也有兩個,可以用串列埠傳送字串,也可以用系統介面的串列埠列印os_printf,還是os_printf好用,可以格式化輸出。
//串列埠傳送字元
//void uart0_sendstr(const char *str);
uart0_sendstr
("hello world~~~");
//系統的printf
os_printf
("hello world~~~");
os_printf
("system_sdk_version:%s"
,system_get_sdk_version()
);
os_printf 的標頭檔案——#include 「osapi.h」其實想想是一直用的,在keil的options選項下的"c/c++",裡面有個包含標頭檔案的路徑,只不過是編譯器平時幫我做了這個工作。system_get_sdk_version()的標頭檔案——#include 「user_inte***ce.h」
#include
"ets_sys.h"
#include
"osapi.h"
//os_***系列介面
#include
"user_inte***ce.h"
//含system_***系列介面
#include
"driver/uart.h"
uint32 icache_flash_attr user_rf_cal_sector_set
(void
)//rf扇區設定初始化
void icache_flash_attr user_rf_pre_init
(void
)//rf初始化
void icache_flash_attr user_init
(void
)//使用者初始化函式
下面我試了幾個波特率,分別是9600,74880,115200。
在用9600的時候,"hello world"前面的換行沒有顯示出來。
在用115200的時候,前面幾個資料出錯了,"hello world"沒有顯示全。
在不改變波特率的情況下是最正常的,換行也顯示出來了,既然波特率降低也不正常,那應該就不是由於波特率過高導致的資料錯誤,而是在切換波特率後波特率不穩定,剛傳輸的幾個字元識別不出來,加延時解決。
ESP 8266 串列埠通訊 Serial
esp8266的串列埠通訊與傳統的arduino裝置完全一樣。除了硬體fifo 128位元組用於tx和rx 之外,硬體串列埠還有額外的 256位元組的tx和rx快取。傳送和接收全都由中斷驅動。當fifo 快取滿時,write函式會阻塞工程 的執行,等待空閒空間。當fifo 快取空時,read函式也會...
ESP8266 學習筆記(八)串列埠原始碼分析
我一直對esp8266的串列埠傳輸的機制很好奇,沒辦法只得好好分析原始碼了。esp8266的中斷系統是必須要了解的。我分析的源 是分配有任務的,所以在任務函式中是無法看到中斷的。我的分析如下 實現如下 串列埠接收中斷處理函式 local void uart0 rx intr handler void...
FPGA學習 9 串列埠通訊
處理器與外部裝置通訊的兩種方式 並行通訊和序列通訊 速度快但占用引腳多 並行 序列通訊的通訊方式 同步通訊和非同步通訊 同步帶時鐘線,非同步不帶時鐘,只能自覺遵從協議 序列通訊的傳輸方向 單工 資料只能沿著乙個方向傳輸 半雙工 資料兩個方向,但是需要分時 全雙工 資料可以同時進行雙向傳輸 常見的序列...