DQXG_3150
DQXG_3150

注册于 1 year ago

回答
3
文章
0
关注者
1

aozima 发表于 2020-4-13 07:48
一般都是写穿了,下一个写断点,看谁对这里进行了修改?


我找到问题了是rt_config.h中默认的FINSH_STACK的值设置小了,内存溢出,程序就跑飞了。。改成1024。就可以了:lol

1.软件定时器回调函数中执行ADC读取温度函数wifi上传.png
WIFI移植何老师的函数,通过串口3发AT指令

QQ:418452224

下载附件[ESP8266WIFI_5.rar]

QQ:418452224
编程思路:
1.在main函数中创建事件,创建ADC数据处理线程(优先级1),报警线程(优先级2),ADC采用通道1和通道2,定时器触发,DMA传输。
2.在ADC数据处理线程中判断通道1的值大于3.0V则发送事件1,通道2的值小于0.5则发送事件2,延迟10ms执行
3.报警线程同时接受到事件1和事件2的值时,则发送报警提示。

下载附件[4_RTT_Event&ADC.rar]

1.在线程中进行按键扫描,当获取按键键值为KEY1时创建一个LED线程,并启动该线程,200ms运行一次
2.当按键键值为KEY2时,删除LED线程。

下载附件[3_RTT_Creae&Delate.rar]

    本帖最后由 DQXG_3150 于 2020-4-5 17:25 编辑


QQ418452224
编程思路:1当串口2接受数据完毕时,释放信号量。将接受完成的数组发到消息队列
2.当线程中获得信号量时,在线程中读取消息队列的数据。并发送到串口

下载附件[2_RTT_MSQE.rar]

踩姑娘的小蘑菇 发表于 2020-3-17 19:47
首先,rtthread的线程是全抢占的,高优先级线程可以直接打断低优先级线程的运行
然后我比较好奇什么任务 ...


串口轮训发送数据、FLASH页擦除这些。。

踩姑娘的小蘑菇 发表于 2020-3-17 19:47
首先,rtthread的线程是全抢占的,高优先级线程可以直接打断低优先级线程的运行
然后我比较好奇什么任务 ...


明白了。谢谢大神指点

aozima 发表于 2020-3-17 10:26
A的优先级大于B和C即可。


版主大大,那B、C任务里面没有DELAY语句,无法进入阻塞,一进入运行,就需要从头运行到尾,无法打断怎么办啊:Q

aozima 发表于 2020-3-17 10:29
我比较好奇的是,楼主用裸机,是怎样运行三个线程。


就是放在While(1)循环的;P任务A在最开头,然后顺序下来是B、C

发布
问题