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
    评论
STM32Cube中,可以使用USB虚拟串口发送字符串。首先,我们需要关注`usbd_cdc_if.c/h`文件,该文件位于`Application/User/USB_Device/App`目录下。 接下来,我们需要将开发板与电脑通过串口连接,可以使用USB-TTL进行连接。将USB-TTL的TXD连接到开发板的RXD引脚(例如PA10),将USB-TTL的RXD连接到开发板的TXD引脚(例如PA9)。然后,在串口调试助手中打开串口,并将波特率设置为9600(一般串口调试助手的波特率都为9600)。最后,按下开发板的复位键,即可在串口调试助手上看到传送的字符串信息。 在主程序的`main.c`文件中,我们可以声明一个发送字符串的缓冲区和长度变量。然后,在主循环中,我们可以使用`CDC_Transmit_FS`函数发送字符串。例如,我们可以使用以下代码在循环中不断发送字符串"Hello HFUT_ETA!\r\n",并通过延时函数进行间隔。 ```c char USB_TxBuf<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [STM32Cube配置USB虚拟串口发送与接收回传](https://blog.csdn.net/m0_60876665/article/details/122788442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [STM32如何给上位机发送字符串(串口通信)——基于STM32CubeMx(发送一句简单的字符串)](https://blog.csdn.net/qq_39542860/article/details/105925263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LI_ER_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值