STM32将数据从十六进制转换为ascii通过串口发送显示

这篇具有很好参考价值的文章主要介绍了STM32将数据从十六进制转换为ascii通过串口发送显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

/****************************************************************************
* 名	称:char HexToAscii(u8 nHex)
* 功	能:单个16进制转ASCII码		   
* 入口参数:nHex	0x0A-0x0F.0x00-0x09
* 出口参数:转换后的ASCII码
* 说	明:16进制0x0A-0x0F.0x00-0x09转ASCII码A-F.0-9
****************************************************************************/
char HexToAscii(u8 nHex)
{
	if(nHex <= 9)	//数字0~9
	{
		return (nHex + 0x30);
	}
	else
	{
		if(nHex >= 0x0A && nHex <= 0x0F)	//字母A~F
		{
			return (nHex + 0x37);
		}
		else
		{
			return 0xFF;
		}
	}
}
/****************************************************************************
* 名	称:
* 功	能:发送字符串 
* 入口参数:无
* 出口参数:无
* 说	明:无
****************************************************************************/
void Usart_SendString(USART_TypeDef * pUSARTx, char *str)
{
	unsigned int k=0;
	do 
	{
		Usart_SendByte( pUSARTx, *(str + k) );
		k++;
	} while(*(str + k)!='\0');

	/* 等待发送完成 */
	while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET)
	{}
}
/****************************************************************************
* 名	称:display_dec
* 功	能:将十六进制数的万、千、百、十、个位取出,在百和十之间加上小数点(原始数据扩大了100倍),然后转换为ascii值并通过串口发送显示		   
* 入口参数:12345
* 出口参数:串口显示123.45
* 说	明:
****************************************************************************/
void display_dec(uint16_t ch)
{
	char ch_value[6]={0};	
	char *p = ch_value;
	int ch_databit[5]={0};
	int *pb = ch_databit;
	int i,k;
	
	for(i=0;i<6;i++)
	{
		if(i == 3)//增加小数点
		{
			*p++ = '.';
		}
		else
		{
			if(i>3)
			{
				k=i-1;
			}
			else
			{
				k=i;
			}
			*pb =(ch / (int)pow(10,4-k)) % 10;//取万、千、百、十、个
			*p++ = HexToAscii(*pb);//将数据位转换为ascii码值   //*p++表达式返回*p,存储=号右表的结果后,将地址自增1		
		}
	}
	 p = ch_value;//将指针指向最初位置,避免数据发错
	
	Usart_SendString(USART1, ch_value);
}

stm32串口发送ascii码,C/C++,stm32,c语言文章来源地址https://www.toymoban.com/news/detail-644034.html

到了这里,关于STM32将数据从十六进制转换为ascii通过串口发送显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构:使用顺序栈的基本操作,实现十进制转为二进制,十六进制的转换

    使用系统环境: 1:win10,使用工具dev 2:使用系统win10 3:参考书籍数据结构(C语言版——严蔚敏 吴伟民) ( 注意:此文章默认,学习者拥有一定的数据机构栈,C语言的知识,书籍第20页,2.1算法的代码进行一个简化。)

    2024年02月05日
    浏览(48)
  • sm3加密(32位哈希,64位十六进制数据)

    https://blog.csdn.net/nicai_hualuo/article/details/121555000 中介绍了sm3的算法并给出了可用代码,我只是将其拷贝过来,测试、去掉多余的输出,并进行了简单封装,以方便项目中使用。 修正了十六进制转字符串和十进制的方法支持小写的十六进制字符串。 用法见main函数。

    2024年02月11日
    浏览(33)
  • 十六进制转换到十进制(java)

    一、前言  首先我们要知道十六进制的转换以及十以上的进制的转换与十以下的进制转换是不一样的,它们在一位上会用超过9的数字,这个我们在利用以前的方法就行不通了,我接下来就向大家分享一种方法。(注:在Java中10---15分别用A B C D E F表示,不分大小写) 二、正文

    2024年02月11日
    浏览(49)
  • MATLAB十六进制与十进制互相转换

    包含单个数字进行转换和数组进行转换(可用于串口数据解析) 1.十六进制转十进制

    2024年01月16日
    浏览(40)
  • Python hex()十六进制转换

    Python hex() 函数用于将整数转换为以“0x”为前缀的小写十六进制字符串: 输出: 十六进制 到 十进制 使用 int() 函数 ,第一个参数是字符串 ‘0Xff’ ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。 二进制 到 十进制 八进制 到 十进制 其实可以看

    2024年02月11日
    浏览(37)
  • Java中十六进制与十进制之间互相转换

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:这里可以添加本文要记录的大概内容: 提示:以下是本篇文章正文内容,下面案例可供参考 话不多说,直接上代码 如将十进制数字 108 转换为十六进制 代码示例如下: 运行结果: 这样将一个十

    2024年02月12日
    浏览(41)
  • PYTHON : 二进制 、 八进制 、十六进制的转换和输出

    十进制转换成其他进制 保存为文本串 二进制 bIn() 八进制 oct() 十六进制 hex() 不输出前缀 使用format函数 如果不想输出进制前面的 前缀符号 , 这时我们就要使用format函数 在这里我们要注意 , 二进制和八进制 的再format里的 符号是‘b’,‘o’ 而十六进制format 里的符

    2023年04月09日
    浏览(45)
  • 简单使用Linux printf 将十进制转换为十六进制

    在开发和排查问题过程中,有时我们需要做一些进制的转换,以下是一些快速的小技巧: 下面的是 十进制转换为十六进制: 还可以把 十六进制转为十进制: 其实中引号中%x为要转换的格式,n为换行“new line” 还可以十进制转换为八进制 另外使用bc命令进行转换也可的大

    2024年04月16日
    浏览(30)
  • 进制转换—包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细

    目录 1.进制转换必备知识:         1.1 二进制逢2进1         8进制逢8进1           10进制逢10进1        16进制逢16进1         1.2为了区分二、八、十、十六进制,我们通常在数字后面加字母进行区分 2. 二进制与八进制、十六进制相互转换         2.1 二进制转

    2023年04月23日
    浏览(39)
  • 【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细

    目录 1.进制转换必备知识:         1.1 二进制逢2进1         8进制逢8进1           10进制逢10进1        16进制逢16进1         1.2为了区分二、八、十、十六进制,我们通常在数字后面加字母进行区分 2. 二进制与八进制、十六进制相互转换         2.1 二进制转

    2024年02月05日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包