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串列埠
- 串列埠,COM口,UART,USART串列埠
- (10)uart串列埠通訊串列埠
- 立創泰山派學習07--串列埠UART3的收發測試串列埠
- UART串列埠及Linux實現串列埠Linux
- FPGA學習筆記03——UART串列埠FPGA筆記串列埠
- ESP32 wifi 串列埠轉發資料 UART micropythonWiFi串列埠Python
- Linux串列埠程式收發16進位制資料錯誤Linux串列埠
- 串列埠收發字元轉換為整數串列埠字元
- Linux 串列埠程式設計 使用termios與API進行串列埠程式開發Linux串列埠程式設計iOSAPI
- MSM8953 Android 9.0 開啟uart串列埠Android串列埠
- 通過串列埠進行通訊 :串列埠
- 定位模組LuatOS快速入門:源UART串列埠通訊串列埠
- 在Java中操作串列埠實現簡訊收發Java串列埠
- LED發光二極體,串列埠收發資料、按鍵控制串列埠
- 在VB中利用API進行串列埠通訊API串列埠
- STM32應用DMA——串列埠收發不定長資料串列埠
- 基於Atmega8微控制器的串列埠收發程式串列埠
- C#如何開發透過USB進行串列埠通訊的Androud上位機C#串列埠
- 串列埠通訊校驗方式(even,odd,space,mark)UART資料波形分析串列埠
- 基於AVR的串列埠與PC機通訊程式碼(uart8位資料)VR串列埠
- 使用Modbus4J進行RTU模式串列埠通訊模式串列埠
- Linux 串列埠程式設計 串列埠裝置程式開發Linux串列埠程式設計
- 使用Windows API和多執行緒進行串列埠通訊[1] (轉)WindowsAPI執行緒串列埠
- 串列埠屏開發曲線串列埠
- java:使用RXTXcomm向安卓系統板子的串列埠進行命令寫入Java安卓串列埠
- 如何使用Java串列埠進行資料通訊及應用案例Java串列埠
- IBM串列埠線序以及串列埠線的做法(轉)IBM串列埠
- QT實現串列埠助手中串列埠名的實時更新QT串列埠
- 帶內串列埠 在串列埠中輸入命令串列埠
- Linux下串列埠通訊詳解(下)讀寫串列埠及關閉串列埠Linux串列埠
- [CSR8] 分享一個CSR8670串列埠收發程式 [複製連結]串列埠
- 串列埠通訊利器:SerialPortStream庫詳解,輕鬆實現C#串列埠開發串列埠C#
- 沒有真實串列埠裝置時使用"虛擬串列埠驅動"除錯你的串列埠程式碼串列埠除錯
- 串列埠資料抓取及串列埠通訊模擬串列埠
- 你真的瞭解串列埠嗎(示波器串列埠波形分析)串列埠
- 串列埠流控串列埠