#include
#include
#include
#include
#include
#define baudrate b115200
#define uart_device "/dev/ttys3"
#define false -1
#define true 0
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
///////
/***@brief 設定串列埠通訊速率
*@param fd 型別 int 開啟串列埠的檔案控制代碼
*@param speed 型別 int 串列埠速度
*@return void
*/int speed_arr = ;
int name_arr = ;
void set_speed(int fd, int speed)
tcflush(fd,tcioflush);
} }}
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
///////
/***@brief 設定串列埠資料位,停止位和效驗位
*@param fd 型別 int 開啟的串列埠檔案控制代碼
*@param databits 型別 int 資料位 取值 為 7 或者8
*@param stopbits 型別 int 停止位 取值為 1 或者2
*@param parity 型別 int 效驗型別 取值為n,e,o,,s
*/int set_parity(int fd,int databits,int stopbits,int parity)
options.c_cflag &= ~csize;
switch (databits) /*設定資料位數*/
switch (parity)
/* 設定停止位*/
switch (stopbits)
/* set input parity option */
if (parity != 'n')
options.c_iflag |= inpck;
tcflush(fd,tciflush);
options.c_cc[vtime] = 150; /* 設定超時15 seconds*/
options.c_cc[vmin] = 0; /* update the options and do it now */
if (tcsetattr(fd,tcsanow,&options) != 0)
options.c_lflag &= ~(icanon | echo | echoe | isig); /*input*/
options.c_oflag &= ~opost; /*output*/
return (true);
}///
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
////
int main(int argc, char *argv)
printf("open...\n");
set_speed(fd,115200);
if (set_parity(fd,8,1,'n') == false)
printf("reading...\n");
while(1)
printf("close...\n");
close(fd);
return
0;}
呼叫的方法比較的簡單,如下,fd是開啟的tty裝置的檔案控制代碼
set_speed(fd,115200);
if (set_parity(fd,8,1,'n') == false)
linux下串列埠程式測試
linux平台下的串列埠程式網上比比皆是,這裡是自己參考資料寫的。測試函式如下 另外那個標頭檔案是我經常使用的,現在還在不斷更新 修改中,也放到這裡吧 測試如下 虛擬機器fc9,使用物理串列埠 可以在vm中設定的 在tty1上執行該程式,在tty2上執行minicom,短接串列埠線2 3腳,可以看到...
模擬串列埠UART的實現
我所禱告的,就是要你們的愛心,在知識和見識上,多而又多,使你們能分辨是非,做誠實無過的人,直到 的日子。腓立比書 1 9 10 最近在調的mcu的型號為stm32f030,配置晶元相較之前的mcu都比較簡單,功能配置很順利。但是在寫串列埠程式的時候,發現串列埠一直不通,使用示波器也沒有波形。因為基本...
Uart進行的串列埠收發
使用hal庫來完成,使用快取陣列進行儲存 hal uart transmit huart1,txt,sizeof txt 1 第乙個引數是要使用的串列埠控制代碼位址,比如要使用u s art1,引數就設定為u s art1的控制代碼位址 huart1 第二個引數是要傳送的資料緩衝區首位址 第三個引數...