在STM32串口学习中,串口发送字符串是必不可少的,但是
在学习过程中可能会遇到下面这个问题,就由我来给大家分享一下吧。
下面是封装的串口发送字符串的函数:
![](https://i-blog.csdnimg.cn/blog_migrate/9048b2b27494df650a5a64ca6d598abe.png)
void Usart_SendString(uint8_t *String)
{
uint8_t i;
for(i = 0; String[i] != '\0'; i++)
{
Usart_SendByte(String[i]);
}
}
在mian.c文件中我们运行代码不会报错,但是我们可以看到Usart_SendString函数打印字符串时会出现警告。
![](https://i-blog.csdnimg.cn/blog_migrate/bfe9f5883466be9b6a14fe639fedb5e6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7b0146b015b33ab6111f85222bc27716.png)
当我们将uint8 _t改为char时,就不会出现警告为什么会出现这样的原因呢?
虽然他们都是8位数的数据类型但是他们的用途不同。uint8_t是一个无符号8位整数类型,它可以存储0到255之间的整数。而char是一个字符类型,它可以存储一个ASCII字符或者一个字节的数据。在处理二进制数据时,通常使用uint8_t类型,而在处理文本数据时,通常使用char类型。
void Usart_SendString(char *String)
{
uint8_t i;
for(i = 0; String[i] != '\0'; i++)
{
Usart_SendByte(String[i]);
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/8710a0d2fcec3ebf50123b3ddff421e1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e9bab668edaae820bbf97c2ce8fcfc6f.png)