新手入门
- 积分
- 29
- 金钱
- 29
- 注册时间
- 2015-11-28
- 在线时间
- 0 小时
|
5金钱
串口实验,我想在XCOM2.0中发送一个正整数到板子,板子把它转换成一个十进制数保存在一个中间变量n中,方便完成一些后续的自定义功能
但它转换出来并不正确啊(我发8它转换的结果是80........我发11它转换的结果是21)有图有代码,求指导,谢谢!
代码:
<main.c>
#include "delay.h"
#include "sys.h"
#include "usart.h"
//ALIENTEK Mini STM32开发板范例代码3
//串口实验
int main(void)
{
u8 t;
u8 len;
u8 n;
u16 times=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
uart_init(9600); //串口初始化为9600
while(1)
{
if(USART_RX_STA&0x8000)
{
n=0;
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
for(t=0;t<len;t++)
{
n=n+(USART_RX_BUF[len-t-1]-'0')*10^t; //将数组中的ASCII码转换成一个十进制的数
}
printf("\r\n您刚才输入的整数为:%d\r\n",n);
USART_RX_STA=0;
}
else
{
times++;
if(times%500==0)
printf("\r\n请输入一个大于零的整数发送到stm32mini板子\r\n");
delay_ms(10);
}
}
}
|
|