STM32串列埠中斷方式接收

2021-06-19 15:40:09 字數 1335 閱讀 3076

經過除錯在stm32f101cbt6中實現通訊。注意還要配乙個ttl轉usb介面,才能進行通訊。實現字串回發

#include"stm32f10x_it.h"

#include "stm32f10x_conf.h"

void rcc_configuration(void); 

//時鐘配置 

void usart_configuration(void); //定義串列埠初始化函式

void nvic_configuration( void);

void uart1_putchar(u8 ch);

void uart1_putstring(u8* buf , u8 len);

void gpio1_configuration(void);

void gpio_configuration(void);

int usart_rx_buf[64]=0;

int usart_rx_sta=0;

void rcc_configuration(void)

//rcc_apb2periphclockcmd(rcc_apb2periph_gpioa, enable);

//rcc_apb1periphclockcmd(rcc_apb1periph_usart2 ,enable); 

}int main(void)

}usart_rx_sta=0;

}for(i=0;i<1000000;i++);

gpio_resetbits(gpioa,gpio_pin_11);

gpio_resetbits(gpioa,gpio_pin_15);

for(i=0;i<1000000;i++);

}}  

void gpio_configuration(void)

voidgpio1_configuration(void)

void usart_configuration(void)//串列埠初始化函式

void nvic_configuration(void)

在stm32f10x_it.c

void usart2_irqhandler(void); //放在標頭檔案裡面也可以

extern  

intusart_rx_buf[64];//宣告全域性變數,此處不能夠賦值

extern  

int usart_rx_sta;//

宣告全域性變數,此處不能夠賦值

void usart2_irqhandler(void) 

}if(usart_getitstatus(usart2, usart_it_rxne) !=reset) 

}

STM32串列埠中斷接收方式詳細比較

串列埠除錯,以前也調過,只是沒這麼深入的琢磨過,最近又在弄,感覺串列埠很基本,也很有學問,要是出現bug可能導致系統奔潰。現在貼出來,歡迎拍磚指正!本例程通過pc機的串列埠除錯助手將資料傳送至stm32,stm32通過sp3232晶元採用中斷接收方式完成,然後接收資料後將所接收的資料又傳送至pc機,...

STM32串列埠中斷接收方式詳細比較

本例程通過pc機的串列埠除錯助手將資料傳送至stm32,stm32通過sp3232晶元採用中斷接收方式完成,然後接收資料後將所接收的資料又傳送至pc機。例項一 c view plain copy print?void usart1 irqhandler u8 getdata 這是最基本的,將資料接收...

hal庫實現stm32串列埠中斷接收資料

stm32cubemx設定中斷和非同步通訊模式。先設定並開啟串列埠中斷接收 該函式功能為開啟串列埠接收中斷,並指定儲存接收資料的快取區,設定從串列埠接收的資料大小。這裡要特別注意,該函式只有從串列埠接收到size個資料後才會返回,不然會阻塞。hal uart receive it huart1,mu...