目的:
串口通信发送的数据是以ASCII码形式,对数据进行处理需要将ASCII码转换成数值,对数值转换成二进制,再根据帧格式对其拆帧。
流程;
1、接收串口发送的数据(串口中断服务函数)
2、将串口发送的数据转换为数值。
3、将数值转换成二进制
4、对二进制根据帧格式进行拆帧,并发送给串口显示。
STM32学习 第一次动手编程:
主函数:
int main(void)
{
u16 num_r;
u16 num_t;
u8 t;
u8 len;
u16 times=0;
u8 b[16]={0};
int y=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
delay_init(168); //延时初始化
uart_init(115200); //串口初始化波特率为115200
LED_Init(); //初始化与LED连接的硬件接口
while(1)
{
//赋初值 不然会出错
for(t=0;t<15;t++)
{ b[t]=0;}
y=0;
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
for(t=0;t<len;t++)
{
b[t]=USART_RX_BUF[t];//将发送的数存到数组中
}
num_r=atoi(b); //将数组转成数值
printf("num_r=%d\r\n",num_r);
//将十进制数转换成二进制
while(num_r!