CH32V307使用freertos跑模拟IIC,模拟IIC中使用了Delay_Us,得不到IIC数据

在裸机上能够使用。使用临界区的方法能够得到第一次IIC数据,然后程序就会在这个线程卡住,也无法执行其他线程,想问怎么解决呢,有没有freertos使用模拟IIC的例子呢,谢谢

您好,目前没有相关例程,若你要在FreeRTOS下实现us级的延时,可以通过定时器TIMx自定义一个延时函数,可以实现较为准确的延时,使用应该是没问题的,后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通。


所以CH32官方自带的delay_us函数在这里使用就是有问题的吗,我看stm32一直这样写的


把delay_us改掉就可以了


您好,@?-?,关于EVT FreeRTOS例程,vTaskDelay延时函数是使用Systick配置的,debug文件中的延时函数也是通过Systick配置的,FreeRTOS下一般建议直接使用vTaskDelay延时函数。关于模拟IIC,里面用到的延时应该都是几us级别的,但使用

vTaskDelay延时函数最低大概可以降到10us级别左右,因此此处建议直接用定时器TIMx自定义配置延时函数使用。后续沟通可通过邮箱(lzs@wch.cn)和我沟通。


只有登录才能回复,可以选择微信账号登录