设为首页 加入收藏

TOP

STM32串口寄存器操作(二)
2014-11-24 07:43:34 来源: 作者: 【 】 浏览:1
Tags:STM32 串口 寄存器 操作
GPIOC,BIT10,AF_PP, SPEED_10M); //PC10,TXD只能设置成复用推挽输出
GPIOx_Init(GPIOD,BIT11,IN_FLOATING,IN_IN); //浮空输入
DeviceReset(DEV_UART4);//复位串口3
irq_n = IRQ_UART4;//串口3中断号
}break;
case 4: //通道4,UART5 ,TX:PC12;RX:PD2
{
DeviceClockEnable(DEV_GPIOC,ENABLE);//GPIO C 时钟使能
DeviceClockEnable(DEV_GPIOD,ENABLE);//GPIO D 时钟使能
DeviceClockEnable(DEV_UART5,ENABLE);//UART 5 时钟使能
GPIOx_Init(GPIOC,BIT12,AF_PP, SPEED_10M); //PC12,TXD只能设置成复用推挽输出
GPIOx_Init(GPIOD,BIT2,IN_FLOATING,IN_IN); //浮空输入
DeviceReset(DEV_UART5);//复位串口3
irq_n = IRQ_UART5;//串口3中断号
}break;
default : return 1;//端口号超出范围,返回错误
}
//设置波特率分频系数
clock = SYS_CLK * 1000000;//USART1时钟
if(ch > 0)
clock /= 2; //USART2,3,4,5时钟
fclk = (float)clock / 16.0 / Speed;//计算波特率分频系数
clock = (u16)fclk;//得到波特率分频系数整数部分


UARTx->BRR = clock << 4;//设置波特率整数部分
fclk -= clock;//得到波特率分频系数小数部分
fclk *= 16;
UARTx->BRR |= 0xf & (u16)fclk;//设置波特率小数部分
//配置UART
UARTx->CR1 = 0x2000;//使能USART,1个开始位,8位数据
UARTx->CR1 |= 0x8;//置TE = 1;发送使能;发送第一个空闲位
UARTx->CR1 |= 0x04;//RE = 1;接收使能
SetUartRxBuff(ch,0,NULL);//设置串口接收缓冲区
UARTx_ClearRxInt(ch); //清除串口接收中断标志
if(RX_Int)
{
UARTx->CR1 |= 0x20;//RXNEIE = 1,开RXNE中断,即开启接收中断
NVIC_IntEnable(irq_n,1);//开启USART1全局中断
UartRx[ch].IntRx = SET;//中断接收标志有效
}
else
{
NVIC_IntEnable(irq_n,0);
//关闭USART全局中断
UartRx[ch].IntRx = RESET;//中断接收标志无效
}
UARTx_SendByte(0,'S');//发送一字节数据
return 0; //初始化成功,返回0
}


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇S3C6410裸机定时器 下一篇STM32 CRC寄存器操作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)