日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

地平線旭日X3派試用-玩轉串口通信

地瓜機器人 ? 2022-07-22 11:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

旭日X3派開發(fā)板提供了40PIN標準接口,方便用戶擴展外圍設備。其中物理引腳編號8和10為串口通信發(fā)送和接收使用(8-TXD,10-RXD)。

pYYBAGLaE8CAE2wjAAdIi78KVQI110.png

40PIN引腳功能和位置編號如下:

pYYBAGLaE7uADuXeAAE1AeazLiE943.png

串口轉USB設備引腳和功能描述如下:

pYYBAGLJQ2OARAB9ABAuIiD4g3g360.png

我們可以使用3根杜邦線 + 一個串口轉USB設備(旭日X3派開發(fā)包附贈) + 一臺筆記本電腦 + putty(串口工具)搭建串口通信開發(fā)環(huán)境。

如下圖示:

1)6號管腳和串口轉USB GND連接

2)8號管腳和串口轉USB RXD連接

3)10號管腳和串口轉USB TXD連接

pYYBAGLaE7yATYOzAAJWpFrGqI8497.jpg

從40PIN管腳功能圖我們知道,8號和10號管腳為UART3,對應的設備文件為 /dev/ttyS3。

環(huán)境搭建完成后,我們來編寫一個簡單的程序庫操作串口。

//頭文件

#ifndef SERIAL_H#define SERIAL_Htypedef struct Serial Serial;struct Serial{ int (*Open)(Serial *pDevice, const char *sDevice, int baudrate); void (*Close)(Serial *pDevice); int (*Write)(Serial *pDevice, const char *buf, int len); int (*Read)(Serial *pDevice, char *buf, int len);};Serial* CreateSerialDevice();void DestroySerialDevice(Serial *pDevice);#endif //SERIAL

//實現文件

#include #include #include #include #include #include #include #include "serial.h"typedef struct SerialImpl{ Serial base; int handle; int baudrate; char sDevice[64];}SerialImpl;int speed_arr[] = {B1500000, B1152000, B1000000, B921600, B576000, B500000, B460800, B230400, B115200, B57600, B38400, B19200, B9600, B4800, B2400, B1800, B1200, B600, B300, B200, B150, B134, B110, B75, B50, B0};int baudrate_arr[] = {1500000, 1152000, 1000000, 921600, 576000, 500000, 460800, 230400, 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134, 110, 75, 50, 0};int serial_setting(Serial *pDevice, int baudrate);void serial_close(Serial *pDevice);int serial_comspeed_get(int baudrate){ for (int i = 0; i < sizeof(baudrate_arr)/ sizeof(baudrate_arr[0]); ++i) { if (baudrate_arr[i] == baudrate) { return speed_arr[i]; } } return -1;}int serial_open(Serial *pDevice, const char *sDevice, int baudrate){ int handle = -1; SerialImpl *impl = (SerialImpl*)pDevice; if (!impl) { return -1; } if (!sDevice || sDevice[0] == '\0') { return -2; } handle = open(sDevice, O_RDWR, 0); if (-1 == handle) { perror("open"); return -3; } impl->handle = handle; snprintf(impl->sDevice, sizeof(impl->sDevice), "%s", sDevice); if (0 != serial_setting(pDevice, baudrate)) { serial_close(pDevice); return -4; } return 0;}int serial_setting(Serial *pDevice, int baudrate){ int handle = -1; int speed = 0; struct termios options; SerialImpl *impl = (SerialImpl*)pDevice; if (!impl) { return -1; } handle = impl->handle; if (handle <= 0) { return -2; } speed = serial_comspeed_get(baudrate); if (speed < 0) { return -3; } impl->baudrate = baudrate; if (tcgetattr(handle, &options) != 0) { perror("tcgetattr"); return -4; } if (cfsetispeed(&options, speed) != 0 || cfsetispeed(&options, speed) != 0) { perror("cfsetispeed"); return -5; } //no partity options.c_cflag &= ~PARENB; options.c_iflag &= ~INPCK; //8bits options.c_cflag |= CS8; //stop 1bits options.c_cflag &= ~CSTOPB; //no flow control options.c_cflag &= ~CRTSCTS; options.c_cflag &= ~CSIZE; if (tcsetattr(handle, TCSANOW, &options) != 0) { perror("tcsetattr"); return -6; } return 0;}int serial_read(Serial *pDevice, char *buf, int len){ int handle = -1; int size = 0; SerialImpl *impl = (SerialImpl*)pDevice; if (!impl) { return -1; } handle = impl->handle; if (handle <= 0) { return -2; } if (!buf || len <= 0) { return -3; } size = read(handle, buf, len); if (-1 == size) { perror("read"); return -4; } return size;}int serial_write(Serial *pDevice, const char *buf, int len){ int handle = -1; int size = 0; SerialImpl *impl = (SerialImpl*)pDevice; if (!impl) { return -1; } handle = impl->handle; if (handle <= 0) { return -2; } if (!buf || len <= 0) { return -3; } size = write(handle, buf, len); if (-1 == size) { perror("write"); return -4; } return size;}void serial_close(Serial *pDevice){ int handle = -1; SerialImpl *impl = (SerialImpl*)pDevice; if (!impl) { return; } handle = impl->handle; if (handle != -1) { close(handle); }}Serial* CreateSerialDevice(){ SerialImpl *pDevice = (SerialImpl*)malloc(sizeof(SerialImpl)); if (pDevice) { pDevice->base.Open = serial_open; pDevice->base.Close = serial_close; pDevice->base.Write = serial_write; pDevice->base.Read = serial_read; pDevice->handle = -1; pDevice->baudrate = 0; pDevice->sDevice[0] = '\0'; } return (Serial*)pDevice;}void DestroySerialDevice(Serial *pDevice){ if (pDevice) { pDevice->Close(pDevice); free(pDevice); }}

//測試文件

#include #include #include #include #include "serial.h"int main(int argc, char *argv[]){ char sbuf[128]; int count; int size; int ret; Serial *port = CreateSerialDevice(); assert(port != NULL); ret = port->Open(port, "/dev/ttyS3", 921600); assert(ret == 0); while (1) { snprintf(sbuf, sizeof(sbuf), "%d", count++); size = port->Write(port, sbuf, strlen(sbuf)); assert(size != -1); usleep(1000*1000); } port->Close(port); DestroySerialDevice(port); return 0;}

//工程文件

cmake_minimum_required(VERSION 3.0)project(serial)set(CMAKE_BUILD_TYPE "Debug")add_library(serial SHARED serial.c)add_executable(echo echo.c)target_link_libraries(echo serial)

測試結果:

X3派側echo每隔1s發(fā)送一次遞增數據,PC側putty接收并打印。

pYYBAGLaE7uAGV24AADFrS9UlYk048.jpg

文中所有文件,均已打包在附件中。歡迎大家一起來玩轉串口通信吧

「地平線旭日X3派,開啟你的嵌入式開發(fā)之旅」,歡迎正在閱讀的你申請試用,一起交流開發(fā)心得

本文轉自地平線開發(fā)者社區(qū)

原作者:大道至簡

原鏈接:https://developer.horizon.ai/forumDetail/98129540173361338

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5210

    文章

    20681

    瀏覽量

    337443
  • AI
    AI
    +關注

    關注

    91

    文章

    41345

    瀏覽量

    302732
  • 人工智能
    +關注

    關注

    1821

    文章

    50369

    瀏覽量

    267080
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    iCAR首發(fā)搭載地平線艙駕融合整車智能解決方案

    2026年4月22日,地平線正式發(fā)布中國首款艙駕融合整車智能體芯片地平線星空 (Horizon Starry) 。作為業(yè)界首款為整車智能Agentic OS原生設計的艙駕融合芯片,地平線星空
    的頭像 發(fā)表于 04-27 14:01 ?143次閱讀
    iCAR首發(fā)搭載<b class='flag-5'>地平線</b>艙駕融合整車智能解決方案

    博泰車聯(lián)網與地平線達成戰(zhàn)略合作

    4月22日,博泰車聯(lián)(股票代碼:2889.HK)在北京地平線機器人技術研發(fā)有限公司(以下簡稱“地平線”)的國內首款艙駕融合整車智能體芯片地平線星空(Horizon Starry)的產品發(fā)布會現場與
    的頭像 發(fā)表于 04-27 13:49 ?544次閱讀
    博泰車聯(lián)網與<b class='flag-5'>地平線</b>達成戰(zhàn)略合作

    地平線11篇論文強勢入選CVPR 2026

    論文收錄結果。地平線憑借深厚的技術積淀與前瞻的科研布局,共有11篇論文成功入選,覆蓋端到端自動駕駛、3D重建、世界模型、具身智能等多個核心領域,充分彰顯地平線在前沿技術領域的頂尖研發(fā)水平。
    的頭像 發(fā)表于 03-18 15:18 ?869次閱讀
    <b class='flag-5'>地平線</b>11篇論文強勢入選CVPR 2026

    地平線正式開源HoloBrain VLA基座模型

    2月13日,地平線正式宣布其HoloBrain-0基座模型及框架全面開源。本次開源不僅包括HoloBrain-0核心算法,地平線同步開放完整基礎設施RoboOrchard。作為地平線機器人實驗室
    的頭像 發(fā)表于 02-26 10:05 ?496次閱讀
    <b class='flag-5'>地平線</b>正式開源HoloBrain VLA基座模型

    地平線與行深智能達成戰(zhàn)略合作

    12月9日,在“向高 同行丨2025地平線技術生態(tài)大會”上,地平線與無人駕駛技術與智慧物流產品提供商行深智能正式簽署戰(zhàn)略合作協(xié)議,行深智能將基于地平線征程6P打造L4級物流場景自動駕駛方案,并計劃于2026年6月啟動量產部署,為
    的頭像 發(fā)表于 12-16 16:18 ?1409次閱讀

    地平線與卡爾動力達成戰(zhàn)略合作

    隨著全球物流行業(yè)對效率、成本及安全性的要求不斷提升,無人駕駛技術已成為干線物流領域降本增效、實現可持續(xù)化發(fā)展的核心路徑。12月9日,“向高 同行丨2025地平線技術生態(tài)大會”期間,干線無人貨運領軍
    的頭像 發(fā)表于 12-16 16:11 ?1426次閱讀

    地平線與元戎啟行達成戰(zhàn)略合作

    在市場需求與技術演進的共同驅動下,高階輔助駕駛的規(guī)模化普及已步入關鍵窗口期。12月9日,在“向高 同行丨2025地平線技術生態(tài)大會”上,地平線與國際領先的人工智能企業(yè)元戎啟行達成合作,雙方將
    的頭像 發(fā)表于 12-16 16:08 ?511次閱讀

    四維圖新亮相2025地平線技術生態(tài)大會

    2025年12月8日-9日,在深圳舉辦的“向高同行——2025地平線技術生態(tài)大會”上,四維圖新及參股公司鑒智機器人聯(lián)合亮相,集中展示了基于地平線芯片打造的核心輔助駕駛系統(tǒng)及高階智駕方案。
    的頭像 發(fā)表于 12-12 17:13 ?1040次閱讀

    知行科技亮相2025地平線技術生態(tài)大會

    12月8日、9日,知行科技作為地平線征程6BEM系列芯片軟硬件合作伙伴亮相地平線技術生態(tài)大會,并展出了基于征程6BEM系列芯片打造的組合輔助駕駛解決方案,覆蓋主動安全到高階領航功能;同時,知行科技iRC100P具身AI BOX也亮相大會,成為知行科技與
    的頭像 發(fā)表于 12-12 12:50 ?1503次閱讀

    地平線HSD量產先鋒品鑒會圓滿落幕

    2025年11月19日-24日,地平線在廣州舉辦Drive on Horizon·HSD量產先鋒品鑒會。首搭地平線HSD及征程6P的星途ET5、搭載征程6的深藍L06開啟輔助駕駛體驗,以出色的實際
    的頭像 發(fā)表于 11-27 11:27 ?575次閱讀

    地平線助力博世中階智能輔助駕駛方案量產交付

    2025年4月,地平線與博世深化戰(zhàn)略合作,雙方基于征程6系列加速智能輔助駕駛方案的研發(fā)與應用。近日,搭載征程6M的博世中階智能輔助駕駛方案的全新量產合作車型東風奕eπ007+、北京越野BJ40增程元境智行版先后上市,標志著地平線
    的頭像 發(fā)表于 11-19 11:47 ?704次閱讀

    地平線與Unity中國達成戰(zhàn)略合作

    近日,中國智駕科技領軍企業(yè)地平線與全球領先的實時3D內容創(chuàng)作和運營平臺Unity正式簽署戰(zhàn)略合作協(xié)議。雙方將深度融合地平線HSD (Horizon SuperDrive) 人機交互系統(tǒng)與Unity
    的頭像 發(fā)表于 11-03 16:43 ?1701次閱讀

    蔚來ET9地平線特別版正式上市

    今天,NIO Day 2025在杭州正式舉辦,智能電動行政旗艦——蔚來ET9地平線特別版正式上市,整車購買售價,81.8萬元起,采用BaaS電池租用方式購買,售價71萬元起。ET9地平線特別版將于9月底開啟交付。
    的頭像 發(fā)表于 09-22 11:43 ?1123次閱讀

    地平線與哈啰正式簽署戰(zhàn)略合作協(xié)議

    9月11日,在2025Inclusion·外灘大會上,地平線與哈啰正式簽署戰(zhàn)略合作協(xié)議。雙方將基于Robotaxi運營場景和需求,發(fā)揮各自技術優(yōu)勢,共同打造極致低成本、高安全、高可靠、高可用的智能
    的頭像 發(fā)表于 09-12 14:25 ?1080次閱讀

    星途ET5搭載地平線HSD及征程6P亮相2025成都車展

    8月29日,成都國際車展首日,星途汽車旗下全新中型SUV——星途ET5攜地平線HSD及征程6P計算方案正式亮相。作為全球首款搭載地平線HSD城區(qū)輔助駕駛系統(tǒng)的車型,星途ET5的亮相標志著地平線HSD
    的頭像 發(fā)表于 09-01 11:11 ?1041次閱讀
    莱西市| 清水县| 凭祥市| 潞西市| 汕尾市| 丹江口市| 通河县| 鄯善县| 上饶市| 朝阳市| 杂多县| 旬阳县| 平泉县| 綦江县| 拉萨市| 克拉玛依市| 万全县| 河北区| 洱源县| 安宁市| 长子县| 江门市| 洛宁县| 泸水县| 湟中县| 郯城县| 慈利县| 堆龙德庆县| 甘泉县| 会宁县| 莱阳市| 新野县| 屏南县| 达孜县| 海阳市| 盐山县| 绩溪县| 广饶县| 临颍县| 泰和县| 安岳县|