当前位置:首页 > 单片机 > 单片机
[导读]1、C8051f的UART0是异步、全双工串口。其波特率发生器规定由定时器1定时器提供。可配置为8位UART或9位UART(多机通讯第九位用于片选作用)。SYSCLK=24.5MHZ(我的板子采用内部晶振频率作为系统时钟) BAUDRATE=11520

1、C8051f的UART0是异步、全双工串口。其波特率发生器规定由定时器1定时器提供。可配置为8位UART或9位UART(多机通讯第九位用于片选作用)。SYSCLK=24.5MHZ(我的板子采用内部晶振频率作为系统时钟) BAUDRATE=115200(波特率)

2、初值TH1 Tl1配置

由上述公式可计算初值:TH1 = 256-(SYSCLK/BAUDRATE/2)而程序内是TH1 = -(SYSCLK/BAUDRATE/2),这两种是相同的。第一种是以正数的二进制形式保存在计算机内。第二种是负数,取反加1求得补码保存在计算机中。结果是相同的。每当TL1中的值溢出后 TH1存储的重装载值装载到TL1中开始计数。

3、初始化程序(以后使用可直接调用此初始化函数)。SYSCLK与BAUDRATE参数修改即可

void UART0_Init (void)

{

SCON0 = 0x10; // SCON0: 8-bit variable bit rate

// level of STOP bit is

// 使能RX接收

// ninth bits are zeros

// 清除接收和发送中断

if (SYSCLK/BAUDRATE/2/256 < 1) {

TH1 = -(SYSCLK/BAUDRATE/2);

CKCON |= 0x10; // T1M = 1; SCA1:0 = xx

} else if (SYSCLK/BAUDRATE/2/256 < 4) {

TH1 = -(SYSCLK/BAUDRATE/2/4);

CKCON |= 0x01; // T1M = 0; SCA1:0 = 01

CKCON &= ~0x12;

} else if (SYSCLK/BAUDRATE/2/256 < 12) {

TH1 = -(SYSCLK/BAUDRATE/2/12);

CKCON &= ~0x13; // T1M = 0; SCA1:0 = 00

} else {

TH1 = -(SYSCLK/BAUDRATE/2/48);

CKCON |= 0x02; // T1M = 0; SCA1:0 = 10

CKCON &= ~0x11;

}

TL1 = 0xff; // 定时器1加1 TL1溢出 此时TH1中的重装载值加载 //到TL1中

TMOD |= 0x20; //定时器1设置为8位自动重装载模式

TMOD &= ~0xD0;

TR1 = 1; //开启定时器1

TI0 = 1; // 发送结束 此发送中断位置1

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

定义一个变量,就是在内存中为你定义的这个变量开辟一段内存空间,如果这个变量没有初始化,那么系统会随机给这个变量赋一个值,这个值我一般称它为"垃圾数"。没有初始化的变量我认为它是没有意义的,是在浪费内存,就比如人刚出生的时...

关键字: 变量 初始化 赋值

▼点击下方名片,关注公众号▼大家好,很高兴和各位一起分享我的第45篇原创文章,喜欢和支持我的工程师,欢迎给我点赞、收藏、分享。加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。欢迎关注【...

关键字: 串口发送

摘要:为了更好地发挥随钻测井仪检测数据的真实性和使用灵活性等优点,文中基于Actel公司的APA075FPGA数据采集和传输系统所涉及到的AD数据采集、FPGA数据缓存、FPGA中数据的串口发送三部分,在实验室自制的一块...

关键字: 随钻井径检测 AD数据采集 FPGA 串口发送

大家好,我是张巧龙,本文介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下,提高系统的响应速度。一种可1.简介...

关键字: 串口发送

方法一:直接把float数据拆分为4个unsigned char(由于数字没法拆分,所以只能用指针的),发过去,在合并为float。其中有两点要注意。(1)大端存储,小端存储;如果搞错读取数据就不是你接收的数据地址(我主...

关键字: int long 串口发送 浮点型数据

一、IO口数字输入/输出端口有下列特性:□ 每个输入/输出位都可以独立编程。□ 允许任意组合输入、输出。□ P1 和 P2 所有 8 个位都可以分别设置为中断。□ 可以独立操作输入和输出数据寄存器。□ 可以分别设置上拉或

关键字: io口 msp430f149 初始化

MCU:STM32F334C8T6Frameware:STM32F3348-Discovery_FW_V1.0.0实现功能:在PC使用串口调试助手向MCU发送字符(数据),MCU将接收到的字符发回PC代码:#includ...

关键字: stm32f334 串口发送 接收数据

//时钟默认情况//FLL时钟FLL选择XT1//辅助时钟ACLK选择XT132768Hz//主系统时钟MCLK选择DCOCLKDIV1048576Hz//子系统时钟SMCLK选择DCOCLKDIV1048576Hz#i...

关键字: msp430f5438 初始化 xt1

一些产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。

关键字: STM32 初始化 变量 复位 非零方法
关闭
关闭