本程式中
使用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之 的測試程式來講會導致第乙個...