STM32IO口模拟串口发送数据
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
学习32已经有两年了,但每次i都感觉似是而非,做了很多东西却仍然感觉什么都不会,国庆期间给学妹布置了任务“用端口模拟串口发送数据”,这个任务以前我也没有做过,花了点时间完成之后感觉对串口的理解深入了几分,果然还是底层最实际
提示:以下是本篇文章正文内容
一、串口协议
从上图可以看出串口的协议主要由起始位,数字位,校验位,停止位构成。 起始位:是由发送方通过将发送数据的逻辑‘1’置为逻辑‘0’接受方接收到信号之后意识到要开始接受数据了。 数据位:总共由八位,数据的发送是低位先发高位后发。8位数据位组成的二进制数转换为16进制可在acsll码表上找到对应的字符。 奇偶校验位:通过设定的奇校验偶校验来检验‘1’的位数,检验数据的正确性。 停止位:结束标志位,由设定的1位或两位高电平结尾,当接受方接收到设定好的结束标志时表示一段数据发送结束。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、使用步骤
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单片机的学习就会变得容易。
|