求一段 电脑用串口调试工具向STM32发送数据控制LED灯 的STM32 程序
我是单片机的初学者,想在开发板上做一个STM32串口和GPIO的练习,比如初始化GPIO后先点亮LED2,串口收到数字1时单片机点点亮LED1,当单片机串口接到电脑发送的...
我是单片机的初学者,想在开发板上做一个STM32串口和GPIO的练习,比如初始化GPIO 后先点亮LED2 ,串口收到数字1时 单片机点点亮LED1,当单片机串口接到电脑发送的数据后产生中断,在中断服务函数中很据所发的数据来判断是否点亮LED1 , 我是初学者,还请注释写细点
GPIO b0 指向LED1 GPIO C3指向LED2 串口使用USART1
另外想请教下 (1)Main 函数里 末尾写一个 for(;;)的内容为空的死循环的话 ,是不是程序执行到死循环就一直停着,而不会再重头执行 main里面的程序
(2)main 函数里 掉用了其他程序文件的函数后,是不是会回到main里继续执行被调用函数后的其他程序语句 展开
GPIO b0 指向LED1 GPIO C3指向LED2 串口使用USART1
另外想请教下 (1)Main 函数里 末尾写一个 for(;;)的内容为空的死循环的话 ,是不是程序执行到死循环就一直停着,而不会再重头执行 main里面的程序
(2)main 函数里 掉用了其他程序文件的函数后,是不是会回到main里继续执行被调用函数后的其他程序语句 展开
1个回答
展开全部
既然是初学者,这种问题最好自己解决,看STM32数据手册,上网找例程自己改,才能学到东西。
main函数里必须要有while(1)或者是你说的for(;;),因为如果没有的话,程序执行完后会跑飞的,出现各种莫名其妙的错误。
你main函数里除了初始化配置在while(1)前之外,所有的非中断程序都要在死循环里做。
main如果没有while(1),程序执行完后就不知道跑到哪里了,不能这么干
main函数里必须要有while(1)或者是你说的for(;;),因为如果没有的话,程序执行完后会跑飞的,出现各种莫名其妙的错误。
你main函数里除了初始化配置在while(1)前之外,所有的非中断程序都要在死循环里做。
main如果没有while(1),程序执行完后就不知道跑到哪里了,不能这么干
追答
因为你串口收到的不是数字1,而是ASCII码的1,ASCII的1应该是0x31吧,你可以这么写
if(ch == '1')
'1',加个单引号,表示字符串的1
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询