嵌入式培訓(xùn)—12.16

串行通信

① UART(通用異步全雙工收發(fā)器):

? ? ? ? (1)串行:多個時鐘周期內(nèi),每一時鐘周期采樣一位有效數(shù)據(jù),通信速度慢,抗干擾能力強(qiáng);

? ? ? ? (2)并行:多個時鐘周期內(nèi),每一時鐘周期采樣一組有效數(shù)據(jù),通信速度快,抗干擾能力弱,資源占用多;

② 如何定義

? ? ? ? (1)同步:有時鐘線,誤差小,占用資源多;

? ? ? ? (2)異步:無時鐘線,傳輸速率高;

? ? ? ? (3)單工:單一方向傳輸數(shù)據(jù);

? ? ? ? (4)雙工:

????????????????????????????1、全雙工:收發(fā)同時;

? ? ? ? ? ? ? ? ? ? ? ? ? ? 2、半雙工:一根線實(shí)現(xiàn)收發(fā);

?③ UART模型:

? ? ? ? 協(xié)議:RS232:

????????????????????????????????(1)電氣特性:DB9的235接口;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)幀格式;

④ 數(shù)據(jù)幀格式

? ? ? ? (1)起始位:1位低電平;

? ? ? ? (2)有效數(shù)據(jù)位:8或9位;

? ? ? ? (3)校驗(yàn)位(奇或偶):1位校驗(yàn)位;

? ? ? ? (4)結(jié)束位:0.5 / 1 / 1.5 / 2 位高電平;

⑤ 傳輸速率

? ? ? ? (1)bit / s? ? ? ? ? ? ? ? 比特率;

? ? ? ? (2)B / s? ? ? ? ? ? ? ? ?波特率;

⑥ 任務(wù):使用串行通信控制燈開關(guān)

? ? ? ? 代碼:

#include "Key_Use.h"

#define MAX 20

#define Timeout 0xFFFF

static u32 j=MAX, i=0, k=0, l=0, a=0;

uint8_t UART1_Ctrl[6][6]={"led_r","led_g","led_b","bee_o","led__","bee__"};

uint8_t Mesage[6]={"\0"};

HAL_StatusTypeDef UART1_SendStr(uint8_t *buf,uint32_t size)

{

return HAL_UART_Transmit(&huart1, buf, size, Timeout);

}

HAL_StatusTypeDef UART1_ResvStr(uint8_t *buf,uint32_t size)

{

return HAL_UART_Receive(&huart1, buf, size, Timeout);

}

void UART1_LEDCtrl()

{

while(1)

{

if(UART1_ResvStr((uint8_t *)Mesage,5) == HAL_OK)

{

if(memcmp(Mesage,UART1_Ctrl[0],5) == 0)

{

LED_G_OFF();

LED_B_OFF();

LED_R_ON();

}

///////////////////////////////////////

if(memcmp(Mesage,UART1_Ctrl[1],5) == 0)

{

LED_R_OFF();

LED_B_OFF();

LED_G_ON();

}

///////////////////////////////////////

if(memcmp(Mesage,UART1_Ctrl[2],5) == 0)

{

LED_G_OFF();

LED_R_OFF();

LED_B_ON();

}

///////////////////////////////////////

if(memcmp(Mesage,UART1_Ctrl[3],5) == 0)

BEEP_ON();

///////////////////////////////////////

if(memcmp(Mesage,UART1_Ctrl[4],5) == 0)

{

LED_G_OFF();

LED_R_OFF();

LED_B_OFF();

}

///////////////////////////////////////

if(memcmp(Mesage,UART1_Ctrl[5],5) == 0)

BEEP_OFF();

}

memset(Mesage,0,6);

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容