STM32IO口模拟串口发送数据

STM32IO口模拟串口发送数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

学习32已经有两年了,但每次i都感觉似是而非,做了很多东西却仍然感觉什么都不会,国庆期间给学妹布置了任务“用端口模拟串口发送数据”,这个任务以前我也没有做过,花了点时间完成之后感觉对串口的理解深入了几分,果然还是底层最实际


一、串口协议

在这里插入图片描述
从上图可以看出串口的协议主要由起始位,数字位,校验位,停止位构成。
起始位:是由发送方通过将发送数据的逻辑‘1’置为逻辑‘0’接受方接收到信号之后意识到要开始接受数据了。
数据位:总共由八位,数据的发送是低位先发高位后发。8位数据位组成的二进制数转换为16进制可在acsll码表上找到对应的字符。
奇偶校验位:通过设定的奇校验偶校验来检验‘1’的位数,检验数据的正确性。
停止位:结束标志位,由设定的1位或两位高电平结尾,当接受方接收到设定好的结束标志时表示一段数据发送结束。

二、使用步骤

1发送程序

代码如下(示例):

void usart_send(char data)
{
	receive=1;
	delay_us(8);//起始位
	receive=0;
	delay_us(8);
		for(char i = 0; i < 8; i++)//数据位
	{
		if(data&0x01)
			receive = 1;  
		else
			receive = 0; 	
		delay_us(8);
		data = data>>1;
	}
	receive = 1;//停止位
	delay_us(16);	
}

总结

32单片机字符的保存类型自动是ascll形式,发送字母的时候只要直接赋值在赋值的时候对要发送的数据加单引号‘ ’,表示要发送的数据为字符类型。

单片机的数据传输与通信总的来说都是传输零与一的信号,只要灵活的运用‘0‘与’1‘,就能对于32单片机的学习就会变得容易。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
IO口模拟串口不定长数据是指通过IO口来模拟串口通信,而且可以传输不确定长度的数据。 在传统串口通信中,数据的长度是固定的,需要事先定义好接收的数据长度。而IO口模拟串口不定长数据则可以根据需要灵活地传输不同长度的数据。 要实现IO口模拟串口不定长数据,首先需要使用适当的硬件设备来完成这个功能。可以使用IO口扩展芯片或者单片机来实现串口通信的功能,并且结合软件进行配置和控制。 具体实现的步骤如下: 1. 确定使用的硬件设备,如IO口扩展芯片或单片机。 2. 连接硬件设备,将其与电脑或其他设备进行连接。 3. 配置串口通信的参数,如波特率、数据位、停止位等。这些参数可以通过软件进行设置。 4. 设计软件程序,用于读取和发送数据。根据实际需求,可以使用高级语言如C、C++或Python等编写程序。 5. 在程序中实现接收和发送数据的功能。由于数据长度不确定,需要使用特定的标识符或协议来标记数据包的开始和结束位置。 6. 当需要发送数据时,将数据按照指定的协议进行封装,并通过硬件设备进行发送。 7. 当接收到数据时,根据协议解析数据,并进行相应的处理和操作。 总结起来,IO口模拟串口不定长数据的实现需要通过硬件设备和软件程序的配合来完成。硬件设备负责与外部设备的连接和信号的转换,而软件程序则负责控制数据发送和接收,并进行相应的处理。通过这种方式,可以实现灵活传输不确定长度的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LI_ER_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值