串列埠通訊,首先進行串列埠的設定:
串列埠設定的一般步驟可以總結為如下幾個步驟:
1) 串列埠時鐘使能, gpio 時鐘使能
2) 串列埠復位
3) gpio 埠模式設定
4) 串列埠引數初始化
5) 開啟中斷並且初始化 nvic(如果需要開啟中斷才需要這個步驟)
6) 使能串列埠
7) 編寫中斷處理函式
串列埠設定原子已經寫在usart.c裡邊了,會拉進來用就行了
//初始化 io 串列埠 1
//bound:波特率
void uart_init(u32 bound)
{gpio_inittypedef gpio_initstructure;
usart_inittypedef usart_initstructure;
nvic_inittypedef nvic_initstructure;
//①串列埠時鐘使能, gpio 時鐘使能,復用時鐘使能
rcc_apb2periphclockcmd(rcc_apb2periph_usart1|
rcc_apb2periph_gpioa, enable); //使能 usart1 ,gpioa 時鐘
//②串列埠復位
usart_deinit(usart1); //復位串列埠 1
//③gpio 埠模式設定
gpio_initstructure.gpio_pin = gpio_pin_9; //isart1_tx pa.9
gpio_initstructure.gpio_speed = gpio_speed_50mhz;
gpio_initstructure.gpio_mode = gpio_mode_af_pp; //復用推挽輸出
gpio_init(gpioa, &gpio_initstructure); //初始化 gpioa.9
gpio_initstructure.gpio_pin = gpio_pin_10; //usart1_rx pa.10
gpio_initstructure.gpio_mode = gpio_mode_in_floating; //浮空輸入
gpio_init(gpioa, &gpio_initstructure); //初始化 gpioa.10
//④串列埠引數初始化
usart_initstructure.usart_baudrate = bound; //波特率設定
主要看主函式是怎麼寫的,main.c:
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
int main(void)
{u8 t;
u8 len;
u16 times=0;
delay_init(); //延時函式初始化
nvic_configuration(); //設定 nvic 中斷分組 2
uart_init(9600); //串列埠初始化波特率為 9600
led_init(); //led 埠初始化
key_init(); //初始化與按鍵連線的硬體介面
while(1)
{if(usart_rx_sta&0x8000)
{ len=usart_rx_sta&0x3f; //得到此次接收到的資料長度
printf("\r\n 您傳送的訊息為:\r\n\r\n");
for(t=0;t
usart_rx_sta&0x8000)
{ len=usart_rx_sta&0x3f;
說實話,這兩句沒看懂,只知道
0x8000對應的2進製 100000000000000 ,
0x3fff 對應的2進製 0011111111111111
usart_senddata(usart1, usart_rx_buf[t]); //向串列埠 1 傳送資料
while(usart_getflagstatus(usart1,usart_flag_tc)!=set);
第一句,其實就是傳送乙個位元組到串列埠。第二句呢,就是我們在我們傳送乙個資料到串列埠
之後,要檢測這個資料是否已經被傳送完成了。 usart_flag_tc 是巨集定義的資料傳送完成標
識符
STM32F103學習筆記 (八) PWM輸出
脈衝寬度調製 pwm 是對脈衝寬度的控制。stm32 的定時器除了 tim6 和 7。其他的定時器都可以用來產生 pwm 輸出。其中高階定 時器 tim1 和 tim8 可以同時產生多達 7 路的 pwm 輸出。而通用定時器也能同時產生多達 4 路的 pwm 輸出,這樣,stm32 最多可以同時產生...
stm32f103外部中斷
void extix init void 外部中斷0服務程式 void exti9 5 irqhandler void 這是簡單的外部中斷的配置,pc7作為中斷輸入 上面補充io口的初始化 gpio initstructure.gpio mode gpio mode ipu pc6配置為快充指示 1...
STM32F103啟動檔案
目錄 一 概述 二 彙編指令 2.1 equ 2.2 area 2.3 space 2.4 preserve8 2.5 thumb 2.6 export 2.7 dcd 2.8 proc 2.9 ldr 2.10 blx 2.11 bx 2.12 temport 2.13 b 2.14 if,els...