1.引脚配置:
GPIOA时钟使能 RCC->AHB1ENR |=0x01<<0;
TX发送引脚(PA9) 复用 输出 推挽 浮空 高速
RX接收引脚(PA10) 复用输入(设置复用即可)
复用寄存器:
AFR[0]表示复用功能寄存器的低位 四位配置一个引脚
AFR[1]表示复用功能寄存器的高位
GPIOA->AFR[1] &=~(0xFF<<4);//清零//复用功能AFR[0]表示复用功能寄存器的低位
//复用功能AFR[1]表示复用功能寄存器的高位
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仅设置停止位
/*
16倍过采样
1 起始位, 8 数据位, 1停止位
禁止奇偶校验控制
*/
//波特率配置
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;//开启发送器
USART1->CR1 |=0x01<<2;//开启接收器
USART1->CR1 |=0x01<<13;//开启串口1
//
串口1配置控制寄存器主要是 采样模式 USART使能 字长 奇偶校验 发送器使能 接收器使能(先全部复位,个别置位为1)
位 15 OVER8:过采样模式 (Oversampling mode)
0: 16 倍过采样
1: 8 倍过采样
注意: 8 倍过采样在智能卡、 IrDA 和 LIN 模式下不可用:当 SCEN=1、 IREN=1 或 LINEN=1 时,
OVER8 由硬件强制清零。
位 13 UE: USART 使能 (USART enable)
该位清零后, USART 预分频器和输出将停止,并会结束当前字节传输以降低功耗。此位由软
件置 1 和清零。
0:禁止 USART 预分频器和输出
1:使能 USART
位 12 M:字长 (Word length)
该位决定了字长。该位由软件置 1 或清零。
0: 1 起始位, 8 数据位, n 停止位
1: 1 起始位, 9 数据位, n 停止位
注意: 在数据传输(发送和接收)期间不得更改 M 位
位 10 PCE:奇偶校验控制使能 (Parity control enable)
该位选择硬件奇偶校验控制(生成和检测)。使能奇偶校验控制时,计算出的奇偶校验位被
插入到 MSB 位置(如果 M=1,则为第 9 位;如果 M=0,则为第 8 位),并对接收到的数据
检查奇偶校验位。此位由软件置 1 和清零。一旦该位置 1, PCE 在当前字节的后面处于活动
状态(在接收和发送时)。
0:禁止奇偶校验控制
1:使能奇偶校验控制
位 3 TE:发送器使能 (Transmitter enable)
该位使能发送器。该位由软件置 1 和清零。
0:禁止发送器
1:使能发送器
注意: 1:除了在智能卡模式下以外,传送期间 TE 位上的“0”脉冲(“0”后紧跟的是“1”)
会在当前字的后面发送一个报头(空闲线路)。
2:当 TE 置 1 时,在发送开始前存在 1 位的时间延迟。
位 2 RE:接收器使能 (Receiver enable)
该位使能接收器。该位由软件置 1 和清零。
0:禁止接收器
1:使能接收器并开始搜索起始位
全部资料51hei下载地址:
STM32初学-串口接受字符串(查询方式).rar
(1.23 MB, 下载次数: 119)
|