欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
UART模塊詳解與使用示例
為方便參加恩智浦大學(xué)生智能車(chē)設計競賽的同學(xué)們,成都逐飛科技設計制作了i.MX RT1064核心板,并配套開(kāi)發(fā)了相應的函數庫。
本文為逐飛科技來(lái)稿,在此分享給大家,對不參加智能車(chē)競賽的朋友也有很大的幫助作用。
點(diǎn)此回顧往期內容:


各位朋友好,新冠肺炎疫情還未解除,目前還不能正常復工,開(kāi)啟在家辦公模式,所以連載應該繼續,逐飛科技連載的“基于RT1064的智能車(chē)應用入門(mén)指導”開(kāi)發(fā)分享又來(lái)投稿啦!
今天分享UART模塊的使用,感謝來(lái)自恩智浦的支持,感謝梁平老師幫忙檢查修改文中錯誤,感謝關(guān)注“逐飛科技”。接下來(lái)進(jìn)入我們今天分享的主題:

UART模塊

1. UART功能

UART(Universal Asynchronous Receiver / Transmitter)通用異步收發(fā)器,主要用于低速近距離的通信,嵌入式開(kāi)發(fā)中大多數工程師,喜歡使用串口將調試信息發(fā)送至PC上的串口調試助手等軟件。

RT1064片內的UART全部都是低功耗串口(LPUART)。

2. UART庫函數

以下函數均位于zf_uart.c和zf_uart.h:
函數名稱(chēng)
函數功能
uart_init
uart初始化
uart_putchar
uart發(fā)送一個(gè)字節
uart_putbuff
uart發(fā)送一個(gè)數組
uart_putstr
uart發(fā)送一個(gè)字符串
uart_getchar
uart等待獲取一個(gè)字節
uart_queryuart查詢(xún)獲取一個(gè)字節
uart_tx_irquart發(fā)送中斷設置
uart_rx_irquart接收中斷設置
uart_set_handle

uart中斷回調函數設置

  • uart_init函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置uart模塊編號

baud

設置uart波特率

tx_pin

設置uart發(fā)送引腳

rx_pin

設置uart接收引腳

  • uart_putchar函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置uart模塊編號

dat

需要發(fā)送的數據

  • uart_putbuff函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置設置uart模塊編號

buff

需要發(fā)送的數組地址

len

需要發(fā)送的長(cháng)度

  • uart_putstr函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置設置uart模塊編號

str

需要發(fā)送的字符串地址

  • uart_getchar函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置設置uart模塊編號

dat

保存數據的地址

  • uart_query函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置設置uart模塊編號

dat

保存數據的地址

return:

返回1讀取成功,返回0未讀取到數據

  • uart_tx_irq函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置設置uart模塊編號

status

設置1開(kāi)啟發(fā)送完成中斷,設置0關(guān)閉發(fā)送完成中斷

  • uart_rx_irq函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置設置uart模塊編號

status

設置1開(kāi)啟接收完成中斷,設置0關(guān)閉接收完成中斷

  • uart_set_handle函數參數

參數名稱(chēng)
參數說(shuō)明
uartn

設置設置uart模塊編號

handle

uart中斷句柄結構體

callback

回調函數地址(直接填寫(xiě)函數名稱(chēng)即可)

tx_buff

發(fā)送緩沖區地址

tx_count

設置發(fā)送n個(gè)字節后觸發(fā)中斷

rx_buff

接收緩沖區地址

rx_count

設置接收n個(gè)字節后觸發(fā)中斷

UART使用示例

1. UART發(fā)送與接收(非中斷方式)

#include 'headfile.h' //包含頭文件


uint8 uart_receive;
uint8 uart_send[10];
int main(void)
{
DisableGlobalIRQ();
board_init();
//務(wù)必保留,本函數用于初始化MPU 時(shí)鐘 調試串口

    //初始化串口 波特率為115200 TX為D16 RX為D17
uart_init (USART_8, 115200,UART8_TX_D16,UART8_RX_D17);

//總中斷最后開(kāi)啟
EnableGlobalIRQ(0);
uart_send[0] = 'S';
uart_send[1] = 'E';
uart_send[2] = 'E';
uart_send[3] = 'K';
uart_send[4] = 'F';
uart_send[5] = 'R';
uart_send[6] = 'E';
uart_send[7] = 'E';
uart_send[8] = '\n';
uart_send[9] = '\r';
while(1)
{
//串口字節發(fā)送
uart_putchar(USART_8,'S');
//發(fā)送0xA5
uart_putbuff(USART_8,uart_send,10);
//發(fā)送uart_send
uart_putstr(USART_8,'輸入任意字符程序繼續運行\n\r');
//發(fā)送字符串
uart_getchar(USART_8,&uart_receive);
//等待接收到一個(gè)字節后程序繼續運行
uart_putchar(USART_8,uart_receive);
//發(fā)送收到的字符
uart_putstr(USART_8,'\n\r');
//發(fā)送換行

systick_delay_ms(100);
//延時(shí)100毫秒
}
}
編程要點(diǎn)1:在使用uart_getchar函數獲取串口數據時(shí)需要注意,此函數需要等到收到數據后才會(huì )繼續往后運行。

2. UART接收(中斷方式)

#include 'headfile.h'


uint8 example_rx_buffer;
lpuart_transfer_t example_receivexfer;
lpuart_handle_t example_g_lpuartHandle;


uint8 uart_data;
//接收到的串口數據
void example_uart_callback(LPUART_Type *base, lpuart_handle_t *handle, status_t status, void *userData)
{
if(kStatus_LPUART_RxIdle == status)
{
//數據已經(jīng)被寫(xiě)入到了 之前設置的BUFF中
//本例程使用的BUFF為 example_rx_buffer
uart_data = example_rx_buffer;
//將數據取出
}

handle->rxDataSize = example_receivexfer.dataSize;
//還原緩沖區長(cháng)度
handle->rxData = example_receivexfer.data;
//還原緩沖區地址
}


//實(shí)驗現象說(shuō)明:將RX TX短接
//通過(guò)在線(xiàn)調試可以看到 uart_data數據在持續加一操作
uint8 uart_send;
int main(void)
{
DisableGlobalIRQ();
board_init();
//務(wù)必保留,本函數用于初始化MPU 時(shí)鐘 調試串口

//初始化串口 波特率為115200 TX為D16 RX為D17
uart_init (USART_8, 115200,UART8_TX_D16,UART8_RX_D17);
NVIC_SetPriority(LPUART8_IRQn,15);
//設置串口中斷優(yōu)先級 范圍0-15 越小優(yōu)先級越高
uart_rx_irq(USART_8,1);


example_receivexfer.dataSize = 1;
//配置串口接收緩沖區長(cháng)度
example_receivexfer.data = &example_rx_buffer;
//配置串口接收的緩沖區

//設置中斷函數及其參數
uart_set_handle(USART_8, &example_g_lpuartHandle, example_uart_callback, NULL, 0, example_receivexfer.data, 1);

EnableGlobalIRQ(0);

while(1)
{
uart_send++;

//串口字節發(fā)送
uart_putchar(USART_8,uart_send);
//更多功能函數 自行查閱zf_uart文件
systick_delay_ms(100);
}
}
編程要點(diǎn)1:在使用串口接收中斷時(shí)需要注意,串口中斷并不是一個(gè)固定的名稱(chēng)了,而是使用一個(gè)函數去設置當中斷后我們想要執行的函數。這是因為在SDK的底層已經(jīng)定義了串口中斷,并且在串口中斷里面做了一些處理,內部的程序會(huì )根據我們在初始化串口中斷函數時(shí)設置的參數,在合適的時(shí)候調用我們用戶(hù)自己設置的中斷回調函數。
編程要點(diǎn)2:在使用串口接收中斷后,我們想要接收到一個(gè)字節就進(jìn)入中斷,但是又想要接收數組或者字符串應該怎么辦呢?完成這個(gè)功能并不難,我們只需要定義一個(gè)數組,將每次收到的字節依次存放在數組里面就可以實(shí)現。
本期逐飛科技“UART模塊詳解與使用示例”專(zhuān)題分享就到這里,大家在使用庫的過(guò)程中如果遇到什么問(wèn)題、或發(fā)現不足、或對庫有什么建議請及時(shí)聯(lián)系“逐飛科技”,我們將盡快完善。
PS:通過(guò)QQ群(逐飛科技__智能車(chē)③部:824575535)可以聯(lián)系到我們,群里也方便大家討論交流,也可與管理員私信,保障該開(kāi)源庫有問(wèn)題時(shí)可以及時(shí)得到解決。然后再分享給各位使用,形成良性循環(huán)。接下來(lái)我們將會(huì )分章節詳細介紹多個(gè)模塊的使用。感謝關(guān)注“逐飛科技”,下期再見(jiàn)!
最后,希望中國早日戰勝新冠疫情,希望所有人聽(tīng)從指揮,不聚集,不放松警惕,科學(xué)防護,希望被感染人群早日康復,希望未感染人群都遠離病毒,感謝所有醫務(wù)工作者,你們是明天的希望,武漢加油!湖北加油!中國加油!

恩智浦MCU加油站


這是由恩智浦官方運營(yíng)的公眾號,著(zhù)重為您推薦恩智浦MCU的產(chǎn)品信息、開(kāi)發(fā)技巧、教程文檔、培訓課程等內容。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
STM8L的DMA詳解 含例程
STM32CubeMX HAL庫串口 DMA數據發(fā)送不定長(cháng)度數據接收
STM32
day03
厚積薄發(fā),我們一起學(xué)RTT UART設備驅動(dòng)框架
STM32+FreeRTOS+CUBEMX
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久