2021-08-25

     波特率配置和串口收发

7第二个重头戏,如何把波特率配置好?两个寄存器就好。
波特率要精准才好,看看公式就知道了。UART_DIV(串口分频值)=F(MASTER)/串口收发波特率
串口分频值:转换成十六进制数,计算结果处理位(0341)H。
程序配置:UART1_BRR2=0X01;
UART1_BRR1=0X34;
提示:注意误差;注意赋值顺序;注意分频值不能小于16。

8第三个重头戏,如何配置相关功能的“使能”,一个寄存器就好。
使能发送/接收功能:UART1_CR2中的“EN”位;
使能发送/接收中断功能:UART1_CR2中的“TIEN”位,该位是开启中断功能位;
使能发送/接收完成中断功能:UART1_CR2中的“TCIEN”位,该位发送完成中断使能。
看看单纯发送功能的“使能”,如UART1_CR2=0X08;
看看发送且带中断功能的“使能”,如UART1_CR2=0XC8;

9第四个重头戏,如何研究单字节发送函数。发送完成标志位:UART1_SR中的“TC”位;
发送标志位:UART1_SR中的“TXE”位,该位是送的移位寄存器,要有个时间等它发送到引脚上。
发送单字节函数UART1_sendByte(u8 data),有形参,无返回值。
Void uart1_Byte(u8 data)
{
uart1_sr&=0xBF;
Uart1_dr=data;
While(!(uart_sr&0x40))
Uart1_sr&=0xbf;
}

10第五个重头戏,如何研究单字节接收函数。
接收完成标志位:UART1_SR中的“RXEN”位。接收单字节函数UART1_RECEIVEByte(void),无形参,有返回值usart_rx
U8 usart_receiveByte(void)
{
U8 usart1_rx;
While(!(uart1_sr&0x20));
Uart1_sr&=0xDF;
Usart_rx=uart_dr;
Return usart_rx;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

分~耳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值