MSP430f5529定时器模拟串口

发布者:Zhenai5201314最新更新时间:2021-01-29 来源: eefocus关键字:MSP430f5529  定时器  模拟串口 手机看文章 扫描二维码
随时随地手机看文章

写这篇文章的目的

本人记性贼差,写过的代码总是忘,每次从头看数据手册,因此借CSDN平台,帮助自己第二次甚至第三次写同一个东西的时候能够有所回忆。


打代码之前的思考

了解串口

串口通信需要三根线,RX, TX, GND
串口数据格式,一个开始位+一字节数据+一个结束位
串口数据格式
波特率:一种用于衡量每秒钟UART传输位数的单位

程序思路

发送端

假设波特率为9600,也就是每秒钟需要传输9600位的数据,那么每传输一位就需要1/9600s,因此,在发送端我们只需要在发送数据时打开定时器,定时时间为1/9600,每进一次中断把端口设置成要发送的位数据。


接收端

接收端的实现需要依靠定时器的捕获功能,当捕获到端口下降沿的同时,打开定时器,每进一次定时中断读一次端口状态。


注意

1.因为接收端在最开始判断有没有数据需要依靠下降沿,所以在发送端,空闲状态下发送端口最好设置为高电平
2.在定义发送数据的时候不要使用unsigned char 类型,因为需要一字节数据本身加上开始位和结束位需要十位数据大小。


关键字:MSP430f5529  定时器  模拟串口 引用地址:MSP430f5529定时器模拟串口

上一篇:MSP430F5529 程序
下一篇:MSP430G2553 HC595 数码管 SPI 显示 时分秒

推荐阅读最新更新时间:2024-11-08 17:52

STM32F4定时器 -- 定时中断
1. 定时器简介 STM32F4的定时器分布如下: - 其中基本定时器包括TIM6、TIM7,其结构最简单,也具有最基本的定时功能,一是用于基本定时、产生时基、二是用于驱动DAC数模转换器。 - 其中通用定时器包括TIME2-TIME5,TIME9-TIME14共10个;通用定时器除了包含基本定时器的功能外还有输入捕获、输出比较和PWM功能等。 - 其中高级定时器包括TIM1、TIM8; 定时器的相关常用寄存器功能如下: 1.1 时钟源选择寄存器(TIMx_SMCR) 定时器的时钟源有4个: - 内部时钟(CK_INT) - 外部时钟模式1:外部输入脚(TIx) - 外部时钟模式2:外部触发输入(ETR),仅适用于TIM2、
[单片机]
51单片机定时器量程的硬件扩展方式
51单片机工作模式2自动装载定时值,按教科书的描述定时能力显得相对精准,但是此时的为8位定时器:当晶振为12MHz时,只能定时0.256ms。 升个级,精准性不要了,使定时器工作在模式1,16位定时器:当晶振为12MHz时已经能定时到65.56ms,略微牛逼不少。如果还要定时更长的数,可能会用软件方式 来扩展计数范围。软件方式扩展的大概思路是:在定时器中断服务程序中对定时器中断请求进行计数,当中断请求的次数达到要求的值时才进行相应的处理。例如,某事件的处理周期为1s,但由于受到最大定时时间的限制,无法一次完成定时,此时可以将定时器的定时时间设为以10ms为一个单位,启动定时器后的每一次定时器溢出中断产生10ms的定时,进入
[单片机]
51单片机<font color='red'>定时器</font>量程的硬件扩展方式
C51编程15-中断篇(定时器中断2)
使用定时器/计数器中断,需要将满足以下的条件。 1)中断总允许打开 EA = 1; 2)中断源允许打开 ET0 = 1或者 ET1= 1; 3)设置定时器计/计数器的工作方式(设置TMOD) 4)装载定时器,设置计数器的初始计算值。 5)开启定时器(TCON中的TR0 = 1或者TR1 = 1) 6)中断服务函数 在满足上面的条件后,就使用定时器了,但为了对定时器的4种方式更深入的了解,下面从逻辑图上讲解4种方式。 方式0: 逻辑结构图 从上面的逻辑结构图中,逻辑结构主要分为三个部分; 1)计数源:计数源可以选择振荡器12分频(机器周期);计数源也可以选择T0(P3.4)引脚。当C/
[单片机]
C51编程15-中断篇(<font color='red'>定时器</font>中断2)
STM32F429HAL库定时器学习笔记
这些基础的东西看视频很费时间而且有过基础的在学习只是库不太清楚,希望我总结的库使用的一些使用能节约一点大家的时间。 void TIM3_Init(u16 arr,u16 psc) { TIM3_Handler.Instance=TIM3; //通用定时器3 TIM3_Handler.Init.Prescaler=psc; //分频系数 TIM3_Handler.Init.CounterMode=TIM_COUNTERMODE_UP; //向上计数器 TIM3_Handler.Init.Period=arr; //自动装载值 TIM3_Ha
[单片机]
C语言使用定时器的方法控制LED灯以1S的速度闪亮
最近因为赶不上提高班的进度,老师给的教程总是断断续续的,所以我打算跟11月1号通过考试的网友们一起学习,呵呵,这也是我一教训来着,在三维里学习要坚持一步一个脚印,坚持必有奇迹,但也要跟得上大家,以后再忙也要努力实现计划了,不能再像这次一样,因为所谓的考试落下了好几堂课,不过也没有关系,能够吸取点教训总是好的。我可以先给自己点时间多学些其它的基础知识。 今天开始学单片机的计数器了,呵呵,可能是一直因为用C语言编程序我定时老是定不准的原因,当得知学会定时/计数器后可以让单片机C语言定时准确后,我感觉学它真的很有动力,虽然编一个简单的程序也花了我好长时间,但编出来的感觉却是那么的爽快,我觉得要学会定时/计数器,关键是要学会编程控制 TCO
[单片机]
51单片机系列连载6—定时器初始化补充
在上一节中提到定时器很重要,而对于定时器来说,就是简单的一个初始化,只要把这个弄明白了,后面的编程操作也就水到渠成了,今天再简单地对定时器初始化做个补充。 首先,再说一下T/C(定时器/计数器)的基本结构,它们基本部件是2个8位的计数器,其中TH1和TL1是T1的计数器,TH0和TL0是T0的计数器,记住这两个计数器,后面的操作都是围绕这两个展开的,要有这种意识。 在作为定时器使用时,是对单片机内部机器周期的计数,因其内部频率为晶振频率的1/12,如果晶振频率为12MHz,则定时器每接受一个输入脉冲的时间为1us,后面很多定时都用到这个基本常识。 当它用作对外部事件计数时,接相应的外部引脚T0(P3.4)或T1(P
[单片机]
stm32 系统滴答定时器
使用步骤: 1.设置SysTick定时器的时钟源。 2.设置SysTick定时器的重装初始值 --中断要打开中断使能 3.清零SysTick定时器当前计数器的值 4.打开SysTick定时器 库函数:SysTick.c 初始化函数: void SysTick_Init(u8 SYSCLK) { SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); fac_us = SYSCLK / 8; //SYSCLK的8分频保存1us所需的计数次数 fac_ms = (u16)fac_us*1000; //每个ms需要的systick时钟数
[单片机]
数码管动态显示+定时器中断方式+Protues
1 仿真现象 2 程序设计 2.1 主程序 #include DisplaySmg.h #include Timer0.h sbit LED = P1^0; unsigned int SystemTimer=0; //系统时间 unsigned char SystemFlag=1; //初始状态 unsigned int NUM = 1983; //待显示数据 void disp_num(); void main() { Timer0Init(); //启动定时器T0 do //开机显示 { if(SystemTi
[单片机]
数码管动态显示+<font color='red'>定时器</font>中断方式+Protues
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved