STM32(5)---USART练习

目录

1.发送函数的参数data是8位的,当需要发送16位的数据时,要怎么处理?

2.当需要发送较多的数据,比如数组(数组是整数型)时,怎么处理?

3.发送数组,数组是字符串,怎么处理?

4.想要使用Printf,scanf,getchar,putchar函数,需要重新定义它们各自的C库函数,将原本函数体改成USART的发送或者接收函数

5.将原本使用USART1的程序,改为使用串口2345上,怎么实现?


1.发送函数的参数data是8位的,当需要发送16位的数据时,要怎么处理?

     将16位的数据分成两个8位存放,分别使用两次发送函数,即可解决。

2.当需要发送较多的数据,比如数组(数组是整数型)时,怎么处理?

     使用循环语句,但是需要知道有多少个数组成员,循环多少次。在编写发送函数时,需要有三个参数,其中一个参数是数组的长度。

注意,判断多个字节的发送位是TC(Transport complete发送完成),判断一个字节的发送位是TXE(发送数据寄存器为空)

3.发送数组,数组是字符串,怎么处理?

      字符串在数组中结束时,是\0,因此不需要知道字符串长度,使用do while()循环语句来发送。

4.想要使用Printf,scanf,getchar,putchar函数,需要重新定义它们各自的C库函数,将原本函数体改成USART的发送或者接收函数

5.将原本使用USART1的程序,改为使用串口2345上,怎么实现?

      宏定义每组USART相关的参数,使用条件语句,需要的USART写1,其余写0;相关的参数包括GPIO和USART的时钟,GPIO的port和pin,中断源,中断函数名,USARTx等。

      在硬件上,需要拔掉串口1连接USB转串口的跳帽,使用杜邦线连接USB转串口和其他的串口,注意,TX连RX,RX连TX。

6.使用USART,电脑上位机发送命令使得灯亮或者灭

      打开GPIO和USART时钟;配置GPIO和USART数据格式等;不采用中断方式,采用查询方式,使用getchar,则需要重定义C库函数,改写成USART接收函数;将接收到的数据进行判断,然后执行对应的动作灯亮或者灭。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值