打印

串口助手控制开发板硬件

[复制链接]
356|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我想使用串口调试助手,通过发送数字,控制32开发板上的硬件。
实现通过串口调试助手发送数字 1:实现LED灯一直处于闪烁状态;发送不是数字 1;LED灯熄灭.怎么打断main函数中的次级while。
我的想法:通过改变uart_init 中MY_NVIC_Init(3,3,USART1_IRQn,2);将此优先级改高。高于main(main的优先级是多少?这个不太了解,没查到),这样void USART1_IRQHandler(void)中接收到的值就会高于主函数的while循环,从而改变while(A)中A的条件,跳出while;

int main(void)
{volatile u16 Res;
u16 t;
u16 len
u16 times=0
Stm32_Clock_Init(9) //系统时钟设置
//uart_init(72,115200) //串口初始化为115200
uart_init(72,9600);
delay_init(72) //延时初始化
LED_Init() //初始化与LED连接的硬件接口
while(1)
{if(USART_RX_STA&0x8000)//用来判断是否接收到数len=USART_RX_STA&0x3FFF;//得到此次接收到的数据长度
//printf("\r\n您发送的消息为:\r\n\r\n");
printf("\r\n您发送的消息是:\r\n\r\n");
for(t=0;t<len;t++) //USART_SendData
USART1->DR=USART_RX_BUF[t]while((USART1->SR&0X40)==0);//等待发送结束 }

/***************************/
Res=USART_RX_BUF[0] //这一句要加上,否则不能正常执行串口助手控制单片机

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

370

主题

370

帖子

0

粉丝