沈北默 2022-11-03 19:21 采纳率: 50%
浏览 40
已结题

hc32f460+FreeRTOS,IIC初始化出错。

在华大的hc32f460keta上移植FreeRTOS后初始化IIC、UART等外设初始化有问题

在裸机的情况下使用IIC和UART正常,可以达到预期目标。
在此基础上(代码不变)添加FreeRTOS配置之后IIC初始化就有问题了。

img

每次运行的时候就会卡在波特率设置这一步,

img

IIC初始化的时候也是卡在波特率设置这一步。如果点击运行到下一步就会进入

img

如果创建一个任务,在任务里面对IIC、UART进行初始化就没有问题,功能也能使用。

有朋友可以帮我看看是什么问题吗。

  • 写回答

3条回答 默认 最新

  • 沈北默 2023-01-09 19:57
    关注

    此问题已近找到原因,是因为配置FreeRTOS时勾选了硬件浮点运算选项,但是代码中没有相应的配置函数。源文件中添加相应的硬件浮点运算配置函数即可。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • wangmeng0804 2022-11-04 10:55
    关注

    这样确实没试过,
    我一般都是有个主任务先去来,主任务里面去初始化外设IIC UART等,初始化好了之后再创建其他的任务

    评论
  • 蓝天居士 《人工智能从入门到进阶实战》作者 2022-11-04 10:55
    关注

    1.把问题分块化。先只看串口这一部分。参照网上很多的FreeRTOS例程跑通例程中的串口。之后对比你的代码和例程代码的差异。
    2. 串口调好后,我想你就能发现问题所在了,i2c也照着这个思路进行定位和解决

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 修改了问题 11月3日
  • 创建了问题 11月3日

悬赏问题

  • ¥30 android百度地图SDK海量点显示标题
  • ¥15 windows导入environment.yml运行conda env create -f environment_win.yml命令报错
  • ¥15 这段代码可以正常运行,打包后无法执行,在执行for内容之前一直不断弹窗,请修改调整
  • ¥15 C语言判断有向图是否存在环路
  • ¥15 请问4.11到4.18以及4.27和4.29公式的具体推导过程是怎样的呢
  • ¥20 将resnet50中的卷积替换微ODConv动态卷积
  • ¥15 通过文本框输入商品信息点击按钮将商品信息列举出来点击加入购物车商品信息添加到表单中
  • ¥100 这是什么压缩算法?如何解压?
  • ¥20 upload上传实验报错500,如何解决?(操作系统-windows)
  • ¥15 谁知道 ShaderGraph 那个节点可以接入 Particle System -> Custom Data