专业的免费网站建设哪家,南昌网站设计系统,网站备案需要原件吗,电商平台项目商业计划书STC15软串口的使用#x1f4d6;在没有使用定时器资源的情况下#xff0c;根据波特率位传输时间#xff0c;利用STC-ISP工具自动计算出位延时函数。 ✨在官方所提供的库函数中位传输时间函数,仅适用于使用波特率为#xff1a;9600的串口数据传输#xff1a;
void BitTime(…STC15软串口的使用 在没有使用定时器资源的情况下根据波特率位传输时间利用STC-ISP工具自动计算出位延时函数。 ✨在官方所提供的库函数中位传输时间函数,仅适用于使用波特率为9600的串口数据传输
void BitTime(void)
{u16 i;i ((MAIN_Fosc / 100) * 104) / 130000L - 1; //根据主时钟来计算位时间while(--i);
}根据STC-ISP工具自己计算位时间可以灵活的调整波特率。
波特率数据传输位时间计算
波特率为9600表示的是串口每秒钟可以传输9600bit,每传输1bit所需时间
1 s / 9600bit 1000000 (us) / 9600 ( bit) 1000 / 9.6 104.1667us
那么8bit就是 104.1667 ∗ 8 833.3336 u s 104.1667*8 833.3336us104.1667∗8833.3336us串口通信时数据格式是一般为起始位8位数据奇偶校验位停止位 一般都没有奇偶校验位所以是10位,也就是一个字节的时间为: 104.1667 ∗ 10 1041.667us 波特率为19200每传输1bit所需时间:
1 s / 19200bit 1000000 (us) / 19200 (bit) 1000 / 19.2 52.0833us波特率115200每传输1bit所需时间
1 s / 115200bit 1000000 (us) / 115200 (bit) 1000 / 115.2 8.6806us⚡波特率位时间计算的越准确数据传输乱码率越低。 软串口示例代码
波特率位时间函数
//
// 函数: void BitTime(void)
// 描述: 位时间函数。
// 参数: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//
void BitTime(void)
{/***使用11.0592MHz波特率9600 位延时时间104us延时时间***/
// u16 i;
// i ((MAIN_Fosc / 100) * 104) / 130000L - 1; //根据主时钟来计算位时间
// while(--i);/***使用11.0592MHz波特率19200 位延时时间52us延时时间***/
// unsigned char i;
// _nop_();
// i 141;
// while (--i);/***使用22.1184MHz波特率19200 位延时时间52us延时时间***/unsigned char i, j;_nop_();_nop_();i 2;j 26;do{while (--j);} while (--i);
}主程序代码
#include config.h
#include soft_uart.h
#include delay.hvoid main()
{while(1){PrintString(perseverance51 \n\r);delay_ms(250);delay_ms(250);delay_ms(250);delay_ms(250);}}工程架构 串口打印信息
程序源码
复制这段内容后打开百度网盘手机App操作更方便哦
链接: https://pan.baidu.com/s/1kYShK7PnzE5UzkgnVIxsxg
提取码: itwv