|
1.引腳配置:
GPIOA時鐘使能 RCC->AHB1ENR |=0x01<<0;
TX發(fā)送引腳(PA9) 復(fù)用 輸出 推挽 浮空 高速
RX接收引腳(PA10) 復(fù)用輸入(設(shè)置復(fù)用即可)
復(fù)用寄存器:
AFR[0]表示復(fù)用功能寄存器的低位 四位配置一個引腳
AFR[1]表示復(fù)用功能寄存器的高位
GPIOA->AFR[1] &=~(0xFF<<4);//清零//復(fù)用功能AFR[0]表示復(fù)用功能寄存器的低位
//復(fù)用功能AFR[1]表示復(fù)用功能寄存器的高位
GPIOA->AFR[1] |= (0x77<<4);//PA9---USART1_TX PA10-----USART1_RX 配置看407zgt database
// 2.串口1配置:
RCC->APB2ENR |=0x01<<4;//串口1時鐘使能
USART1->CR1=0;//寄存器清零
USART1->CR2 &=~(0x03<<12); //CR2僅設(shè)置停止位
/*
16倍過采樣
1 起始位, 8 數(shù)據(jù)位, 1停止位
禁止奇偶校驗(yàn)控制
*/
//波特率配置
USARTDIV=fck*1000000.0/(16*bond);
DIV_Man=USARTDIV;
DIV_Fra=(USARTDIV-DIV_Man)*16+0.5;
USART1->BRR = DIV_Man<<4 | DIV_Fra;
//CR1寄存器需要置1的位
USART1->CR1 |=0x01<<3;//開啟發(fā)送器
USART1->CR1 |=0x01<<2;//開啟接收器
USART1->CR1 |=0x01<<13;//開啟串口1
//
串口1配置控制寄存器主要是 采樣模式 USART使能 字長 奇偶校驗(yàn) 發(fā)送器使能 接收器使能(先全部復(fù)位,個別置位為1)
位 15 OVER8:過采樣模式 (Oversampling mode)
0: 16 倍過采樣
1: 8 倍過采樣
注意: 8 倍過采樣在智能卡、 IrDA 和 LIN 模式下不可用:當(dāng) SCEN=1、 IREN=1 或 LINEN=1 時,
OVER8 由硬件強(qiáng)制清零。
位 13 UE: USART 使能 (USART enable)
該位清零后, USART 預(yù)分頻器和輸出將停止,并會結(jié)束當(dāng)前字節(jié)傳輸以降低功耗。此位由軟
件置 1 和清零。
0:禁止 USART 預(yù)分頻器和輸出
1:使能 USART
位 12 M:字長 (Word length)
該位決定了字長。該位由軟件置 1 或清零。
0: 1 起始位, 8 數(shù)據(jù)位, n 停止位
1: 1 起始位, 9 數(shù)據(jù)位, n 停止位
注意: 在數(shù)據(jù)傳輸(發(fā)送和接收)期間不得更改 M 位
位 10 PCE:奇偶校驗(yàn)控制使能 (Parity control enable)
該位選擇硬件奇偶校驗(yàn)控制(生成和檢測)。使能奇偶校驗(yàn)控制時,計(jì)算出的奇偶校驗(yàn)位被
插入到 MSB 位置(如果 M=1,則為第 9 位;如果 M=0,則為第 8 位),并對接收到的數(shù)據(jù)
檢查奇偶校驗(yàn)位。此位由軟件置 1 和清零。一旦該位置 1, PCE 在當(dāng)前字節(jié)的后面處于活動
狀態(tài)(在接收和發(fā)送時)。
0:禁止奇偶校驗(yàn)控制
1:使能奇偶校驗(yàn)控制
位 3 TE:發(fā)送器使能 (Transmitter enable)
該位使能發(fā)送器。該位由軟件置 1 和清零。
0:禁止發(fā)送器
1:使能發(fā)送器
注意: 1:除了在智能卡模式下以外,傳送期間 TE 位上的“0”脈沖(“0”后緊跟的是“1”)
會在當(dāng)前字的后面發(fā)送一個報頭(空閑線路)。
2:當(dāng) TE 置 1 時,在發(fā)送開始前存在 1 位的時間延遲。
位 2 RE:接收器使能 (Receiver enable)
該位使能接收器。該位由軟件置 1 和清零。
0:禁止接收器
1:使能接收器并開始搜索起始位
全部資料51hei下載地址:
STM32初學(xué)-串口接受字符串(查詢方式).rar
(1.23 MB, 下載次數(shù): 119)
2018-9-22 21:55 上傳
點(diǎn)擊文件名下載附件
|
評分
-
查看全部評分
|