stm32 普通io模擬串列埠程式

2021-09-12 07:12:15 字數 1451 閱讀 4950

本程式中

使用gpiob.5-作為tx,,,gpiod.6作為rx

並將這兩個io口接在led上,能夠檢視傳送和接受的資料狀態。

使用tim3作為定時器中斷,本程式中將波特率設定為 1bps  的原因是想從led燈的狀態讀取傳送和接受的資料

下面為我的程式

#include #include "stm32f10x.h"

#include "misc.h"

#include "stm32f10x_exti.h"

#include "stm32f10x_tim.h"

#include "stm32f10x_usart.h"

void rcc_configuration(void);

void gpio_configuration(void);

void nvic_configuration(void);

void tim3_configuration(void);

unsigned char receive(int a);

int receive_bit(void);

void send(int value);

void send_bit(int send_bit_vlaue);

int send_bit_flag=0;

unsigned char receive_final_value=0;

unsigned char receive_disfinal_value=0;

int i = 0,k=0,j=0;

unsigned char result = 0;

int value_bit[10];

int receive_flag=0;

int u=0x5a;

int main(void)

if(gpio_readinputdatabit(gpioc,gpio_pin_5)==bit_reset)

}return 0;

}void send(int value)

}void send_bit(int send_bit_vlaue)

else }

int receive_bit()

unsigned char receive(int a)

return result;

}void tim3_irqhandler(void)

if(k==10)

if(receive_flag==1)

if(receive_bit() == 0)

if(j==8) }

void rcc_configuration(void)

void gpio_configuration(void)

void tim3_configuration(void)

void nvic_configuration(void)

STM32外部中斷模擬UART串列埠

串列埠資料幀傳送格式 1個起始位 8個資料位 1個停止位 思路 1.pa9做普通io推挽輸出,按照傳送格式用延時暫時作為該位的傳輸時間,波特率為9600 2.pa10做浮空輸入,外部共享中斷使用 可用其餘外部中斷 每接收到乙個資料就進中斷一次,迴圈接收判斷,當接收到 r n將接收標誌置為0x8000...

STM32之串列埠

名稱 stm32之串列埠 說明 對於stm32的串列埠通訊來說,從外部看,和c51差不多。從內部看,啊。我還不了解。從使用上說,也是需要先配置usart,然後通過終端或者輪詢的方式接受或者輸出資料。由於有了韌體庫函式的幫助,stm32的串列埠配置起來比c51還要方便不少。本實驗完成的是輸入輸出重定向...

STM32 的串列埠

一 串列埠使用 原則 盡量中斷中不要有延時 比如自定義delay 和自定義printf串列埠列印,明顯找事啊這麼慢能不發生溢位error嘛 接收和傳送盡量分開處理 1.串列埠傳送資料丟失 1 通常是因為傳送之前未檢測tc狀態位之前是否處於傳送完成標誌導致,關於stm32之 的測試程式來講會導致第乙個...