main.c
#include
"main.h"
char data[
100]
;//資料緩衝流,用來儲存資料
intmain()
}
main.h
這裡是各種標頭檔案不再解釋
#ifndef __main_h_
#define __main_h_
#include
"stm32f1xx.h"
#include
"stm32_types.h"
#include
"stm32_system.h"
#include
"delay.h"
//驅動標頭檔案
#include
"systick.h"
#include
"led.h"
#include
"usart.h"
#endif
usart.h
#ifndef __usart_h_
#define __usart_h_
#include
"stm32f1xx.h"
#include
"stm32_types.h"
#include
"stm32f1xx_hal.h"
#include
"delay.h"
#include
"stdio.h"
#include
"stdlib.h"
#include
//這三個標頭檔案是為了使用printf scanf 重定義和strlen函式
#define uart_lsr_rdr (1<<5)
//接收完成標誌
#define uart_lsr_thre (1<<6)
//傳送完成標誌
#define send_buf1 (usart1->dr)
//串列埠1傳送緩衝區
#define recv_buf1 (usart1->dr)
//串列埠1接收緩衝區
#define usart1_sr (usart1->sr)
//串列埠1狀態
#define send_buf2 (usart2->dr)
#define recv_buf2 (usart2->dr)
#define usart2_sr (usart2->sr)
//和一同理
void
usart1_init
(void);
//串列埠1初始化
void
usart1_receive
(void);
//串列埠1接收資料 本質32接收計算機的資訊
void
usart1_send
(char
*data)
;//串列埠1傳送資料 本質32向計算機傳送資訊
#endif
usart.c
#include
"usart.h"
uart_handletypedef usart1;
//串列埠結構體控制代碼語句
u8 test_rxbuf1[
200]
;//接收緩衝流陣列
u8 rx_index1;
//接收長度
void
usart1_init
(void
)//串列埠初始化
void
usart1_irqhandler
(void
)hal_uart_irqhandler
(&usart1);}
void
usart1_send
(char
*data)
}void
usart1_receive
(void
)printf
("\r\n");
rx_index1 =0;
}}//printf函式重定義
intfputc
(int ch, file *f)
//scanf函式重定義
intfgetc
(file* f)
STM32F103串列埠通訊
usart 通用同步非同步收發器 是乙個序列通訊裝置,可以靈活地與外部裝置進行全雙工資料交換。有別於 usart 還有乙個uart,它是在 usart 基礎上裁剪掉了同步通訊功能,只有非同步通訊。全雙工的,非同步通訊 分數波特率發生器系統 傳送和接收共用的可程式設計波特率,最高達4.5mbits s...
stm32f7網口 STM32F7串列埠通訊問題
stm32f7串列埠通訊問題 所屬分類 stm32f系列 瀏覽數 4572 提問者 dlx6969 問 stm32f767用到2個串列埠 串列埠1,230400,dma傳送,中斷接收 串列埠5,460800,dma傳送,中斷接收。初始化程式如下 初始化函式 void mx uart5 init vo...
9 STM32F767 串列埠通訊
簡述 stm32晶元具有多個usart外設用於串列埠通訊,它是universal synchronousasynchronous receiver and transmitter的縮寫,即通用同步非同步收發器可以靈活地與外部裝置進行全雙工資料交換,還有種uart外設universal asynchr...