我是跟着B站野火的视频编程的,前面的发送一个字节两个字节和8位数据的数组都没问题,然后到发送字符串的函数,发送中文,在调试助手那里显示的就是乱码了
也在网上看过一些解决方法,说改HSE时钟还有的是改倍频因子的,都不行,求解求解
主函数:
#include &quot;stm32f10x.h&quot; // 相当于51单片机中的 #include <reg51.h>
#include &quot;bsp_usart.h&quot;
#include &quot;bsp_led.h&quot;
int main(void)
{
// 来到这里的时候,系统的时钟已经被配置成72M。
uint8_t a[10]={1,2,3,4,5,6,7,8,9,10};
USART_Config();
//Usart_SendByte(DEBUG_USARTx,'A');
//Usart_SendHalfWord(DEBUG_USARTx,0xff56);
//Usart_SendArray(DEBUG_USARTx,a,10);
Usart_SendStr(DEBUG_USARTx,&quot;一二三&quot;);
while(1);
}
发送字符串函数:
/* 发送字符串 */
void Usart_SendStr(USART_TypeDef* pUSARTx,uint8_t *str)
{
uint8_t i=0;
do
{
Usart_SendByte(pUSARTx,*(str+i));
i++;
}while( *(str+i) != '\0' );
while( USART_GetFlagStatus(pUSARTx, USART_FLAG_TC) == RESET );
} |