历史上的今天
今天是:2025年01月29日(星期三)
2021年01月29日 | MSP430f5529定时器模拟串口
2021-01-29 来源:eefocus
写这篇文章的目的
本人记性贼差,写过的代码总是忘,每次从头看数据手册,因此借CSDN平台,帮助自己第二次甚至第三次写同一个东西的时候能够有所回忆。
打代码之前的思考
了解串口
串口通信需要三根线,RX, TX, GND
串口数据格式,一个开始位+一字节数据+一个结束位
波特率:一种用于衡量每秒钟UART传输位数的单位
程序思路
发送端
假设波特率为9600,也就是每秒钟需要传输9600位的数据,那么每传输一位就需要1/9600s,因此,在发送端我们只需要在发送数据时打开定时器,定时时间为1/9600,每进一次中断把端口设置成要发送的位数据。
接收端
接收端的实现需要依靠定时器的捕获功能,当捕获到端口下降沿的同时,打开定时器,每进一次定时中断读一次端口状态。
注意
1.因为接收端在最开始判断有没有数据需要依靠下降沿,所以在发送端,空闲状态下发送端口最好设置为高电平。
2.在定义发送数据的时候不要使用unsigned char 类型,因为需要一字节数据本身加上开始位和结束位需要十位数据大小。
史海拾趣
|
这是用AT89C2051和DS18B20制作的网络型温度传感器,可以用RS232总线向电脑发送测量的温度,或用RS485总线实现网络通信。压缩包中包含有用Protel画的原理图,源程序,说明书和实物图片。特别是DS18B20的测量程序,给出了详细的操作说明,这是一个完 ...… 查看全部问答> |
|
我在用QuartusII 实现微程序控制器过程时 仿真时出现这样的错误 *** Fatal error: Module: quartus_sim.exe Exception: Access Violation Stack Trace: 019fc6eb: SDB_TRI::initialize_value_pointers() + 0x21a (tsm_sdb) 80000000:019f3758: ...… 查看全部问答> |
|
声卡驱动接口wav_iocontrol中pBufIn参数的设置 我想利用DeviceIoControl打开一个声卡驱动设备。但是编译的时候报错,说WODM_OPEN这个变量没有定义,请教一下应该怎么办?程序如下: PMMDRV_MESSAGE_PARAMS pBuffin; pBuffin->dwParam ...… 查看全部问答> |
|
我在ARM7上跑uClinux,通过交换机和电脑相连,电脑跑的是pure-ftpd,在板上的uclinux可以put文件到电脑上,但是get文件就会出现 Read-only file system 的错误,是不是权限不足?如果是那又怎么解决...... 初学嵌入式,希望大家能帮助… 查看全部问答> |




