printf与scanf在stm32中的应用

 STM32中printf重定向(串口输出)_早睡早期的旭酱的博客-CSDN博客_stm32 printf重定向 

此文章中详细写明了 printf与scanf在stm32中的应用需要用到重定向,其本质是重写fputc与fgetc函数的内容(STM32重定向_早睡早期的旭酱的博客-CSDN博客_stm32重定向)使用弱定义以便不修改原本函数的内容以使用。

补充:FILE类型的使用

c语⾔中⽤来打开⽂件的操作,c语⾔中⽂件是以指针形式存在的。
FILE*fp  定义⼀个名为fp的指针,属于FILE(⽂件)类型。FILE是⼀类特殊的指针,⽤来操作 ⽂件。
fp=fopen("⽂件名","r");调⽤fopen()函数,尝试打开同⽬录下的⽂件名相同的⽂件,参数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用STM32时,有时会遇到卡在scanf函数的情况。这可能是由于以下几个原因引起的。 首先,可能是由于串口接收缓冲区溢出导致的。当数据量较大时,串口接收缓冲区容量不足以存储所有接收到的数据,进而导致卡在scanf函数。解决这个问题的方法是增大串口接收缓冲区的大小,确保足够存储接收到的数据。 另外,可能是由于接收到的数据格式与scanf函数所期望的格式不匹配导致的。scanf函数默认以空格、制表符或换行符作为输入的分隔符,所以当接收到的数据与这个格式不一致时,scanf函数会卡住。解决这个问题的方法是根据实际情况,使用正确的格式字符串来匹配接收到的数据格式。 此外,还有可能是由于其他断事件引起的。在断处理程序,可能会修改scanf函数所依赖的寄存器或全局变量,从而导致scanf函数执行出错。解决这个问题的方法是在断处理程序禁止或延迟对scanf函数相关的寄存器或变量的修改。 最后,还可能是由于系统时钟频率设置不正确导致的。在某些情况下,高速时钟会导致scanf函数执行出错。解决这个问题的方法是适当降低系统时钟频率,并确保与printf函数所使用的时钟频率一致。 总的来说,当STM32卡在scanf函数时,我们应该仔细检查串口接收缓冲区大小、数据格式、断事件以及系统时钟频率等相关因素,从而找到并解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值