stm32发送16进制的数组总结
来源:互联网 发布:淘宝小铺货源 编辑:程序博客网 时间:2024/06/14 02:39
关于STM32如何串口输出16进制的数值,然后在串口调试助手上显示,很多人是用printf(“%02x”,A)语句,但是在串口调试助手上显示的是ACSII码,不是我们要的HEX数据,在这里我们用另外一种方法来在这件事情。
直接用寄存器来做,下面看代码:
USART_SendData(USART1,0x00) ;USART_SendData(USART1,0x01) ;USART_SendData(USART1,0x02) ; 这样通过上位机收到的只是02并不是00 01 02
因为数据还来不及发送,数据就被后面来的数据覆盖了,所以收到的数据是02,不是00 01 02
USART_SendData(USART1,0x00) ;delay_ms(1);USART_SendData(USART1,0x01) ;delay_ms(1);USART_SendData(USART1,0x02) ;delay_ms(1); 这样收到的才是00 01 02
在这里,功能是实现了,但是延时其实是一个不是很好的方法,需要系统在等待,浪费太多的时间。下面的方法是我后来改良的方法。原理就是等待发送完后继续发送下一个数据,没有过多的等待。方法是来自论坛的,http://www.openedv.com/posts/list/24107.htm
void UartASendStr (u8 *pucStr, u8 ulNum) { u8 i; for(i = 0;i<ulNum;i++) { while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET); USART_SendData(USART1,*pucStr++); } } void ACK(u8 func) { u8 data[5]; data[0]=0x0c; data[1]=0xAA; data[2]=0x00; data[3]=0xFF; data[4]=0x0F; UartASendStr(data,5); }
上面这个代码发送完后可以在串口的调试助手上hex格式显示。有不懂的可以问我,企鹅1003061094
刚刚入门stm32,还有很多东西需要学习,过几天我会介绍一下modbus的主机是怎么工作的,还有将会上传我的源代码,初学者,动力来自压力。
阅读全文
0 0
- stm32发送16进制的数组总结
- stm32的串口发送16进制数据,上位机16进制显示
- stm32串口发送16进制字符和16进制数的区别和具体实现方法
- STM32的串口中断发送
- STM32 串口发送数据(发送一个字节,以及数组)
- stm32的SPI总结
- 关于STM32发送中断的一些问题
- STM32关于串口发送缓冲的问题
- STM32中USART常用的发送函数
- 串口通信数据发送--字符发送和16进制发送--发送字节的间隔时间
- stm32的pwm学习总结
- STM32的GPIO开发总结
- stm32的pwm学习总结
- STM32的串口应用总结
- 关于STM32中定义数组的问题
- stm32学习总结(二) STM32固件库的CMSIS简析
- 小熊STM32学习总结:STM32的定时器--输入捕捉模式
- STM32 串口发送数据
- CentOS7搭建Apache服务器
- 趣味c 编程之查找凶手
- 八、mcg-helper升级V1.1.0-Alpha版本
- WebSocket安卓客户端实现详解(三)--服务端主动通知
- ubuntu16.04编译dlib for Android
- stm32发送16进制的数组总结
- ubuntu14.04_YouKu安装Adobe_flash
- 最近的关于测试的一些思考
- 仿饿了么购物车效果(UI效果)
- RE:JAVA学习-运算符和分支结构
- 订单分表分库方案
- Java日期和时间类简介
- awk常用命令---统计某一列标签个数
- 17-8-6周总结(hadoop笔记)