Uart進行的串列埠收發
Uart進行的串列埠收發
使用hal庫來完成,使用快取陣列進行儲存
HAL_Uart_Transmit(&huart1,TXT,sizeof(TXT),1);
第一個引數是要使用的串列埠控制程式碼地址,比如要使用U(S)ART1,引數就設定為U(S)ART1的控制程式碼地址&huart1
第二個引數是要傳送的資料緩衝區首地址
第三個引數是傳送的資料長度,這裡可以直接用sizeof()函式獲取傳送緩衝區的長度
第四個引數是超時時間,單位是ms,如果超過設定的時間,則函式返回HAL_TIMEOUT,如果設定為HAL_MAX_DELAY,處理器就會一直等到資料傳送完成再執行下一條語句。
(設定USART1為非同步模式,無硬體流控)
TXT陣列為uint8_t,按asc碼儲存,即char
使用printf過載函式以便於串列埠輸出
複製程式碼
#include “stdio.h”
#ifdef GNUC
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
複製程式碼
串列埠接收
HAL_Uart_Receive_IT(&Uart1,TXT,sizeof(TXT))
HAL_Uart_Transmit_IT(&Uart1,TXT,sizeof(TXT))
第一個引數時要使用的串列埠控制程式碼地址
第二個引數是傳送/接受緩衝區的首地址,用於存放要傳送/接收的資料
第三個引數是傳送/接受緩衝區長度
前三個引數和阻塞方式完全一致,為什麼沒有超時時間了呢?
因為中斷(IT)方式配置完成暫存器之後不需要再佔用CPU,會在接受完成後觸發中斷。
(使uart全域性中斷
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
HAL_UART_Transmit(&huart1,TXT,sizeof(TXT),100);
HAL_UART_Receive_IT(&huart1,TXT,sizeof(TXT));
}
接受後傳送回串列埠
這裡想要取出TXT的值可以在trans前操作,注意TXT為u8即字串陣列,故按索引取出,取數字注意減‘0’;
同時陣列注意多開兩位,回車為\r\n,佔兩位。
相關文章
- 串列埠收發UART(Verilog HDL)串列埠
- 串列埠UART串列埠
- (10)uart串列埠通訊串列埠
- 串列埠,COM口,UART,USART串列埠
- 立創泰山派學習07--串列埠UART3的收發測試串列埠
- UART串列埠及Linux實現串列埠Linux
- ESP32 wifi 串列埠轉發資料 UART micropythonWiFi串列埠Python
- FPGA學習筆記03——UART串列埠FPGA筆記串列埠
- MSM8953 Android 9.0 開啟uart串列埠Android串列埠
- 通過串列埠進行通訊 :串列埠
- 定位模組LuatOS快速入門:源UART串列埠通訊串列埠
- 基於Atmega8微控制器的串列埠收發程式串列埠
- C#如何開發透過USB進行串列埠通訊的Androud上位機C#串列埠
- LED發光二極體,串列埠收發資料、按鍵控制串列埠
- STM32應用DMA——串列埠收發不定長資料串列埠
- 使用Modbus4J進行RTU模式串列埠通訊模式串列埠
- 串列埠屏開發曲線串列埠
- 如何使用Java串列埠進行資料通訊及應用案例Java串列埠
- 串列埠blog串列埠
- QT實現串列埠助手中串列埠名的實時更新QT串列埠
- 帶內串列埠 在串列埠中輸入命令串列埠
- 沒有真實串列埠裝置時使用"虛擬串列埠驅動"除錯你的串列埠程式碼串列埠除錯
- 串列埠資料抓取及串列埠通訊模擬串列埠
- 你真的瞭解串列埠嗎(示波器串列埠波形分析)串列埠
- 串列埠通訊利器:SerialPortStream庫詳解,輕鬆實現C#串列埠開發串列埠C#
- 串列埠通訊串列埠
- 兩個不同工作電壓下的MCU之間,是怎樣進行串列埠通訊的串列埠
- Android 串列埠通訊Android串列埠
- 串列埠小工具串列埠
- 【STM32】串列埠串列埠
- linux 串列埠通訊Linux串列埠
- 安卓下的串列埠測試安卓串列埠
- 串列埠、IIC、SPI的優缺點串列埠
- 03_QT上位機開發之串列埠助手QT串列埠
- 痞子衡嵌入式:嵌入式裡串列埠(UART)自動波特率識別程式設計與實現串列埠程式設計
- Linux串列埠程式設計Linux串列埠程式設計
- 11. 串列埠通訊串列埠
- 串列埠通訊型別串列埠型別