完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在HARMony中,我创建了一个有4个应用程序线程的程序,每个线程都处理简单的任务:-app_a:TCP函数-app_b:logicaland.-app_c:PIC32 I/O端口处理程序-app_d:外部LED显示控制器。SE四线程。我希望能够在一个线程中将数据加载到变量中,并且让另一个线程能够读取数据。
|
|
相关推荐
5个回答
|
|
“看不见”是什么意思?你有编译错误吗?您的消息比16个字符长一点;是否忽略编译器发出的警告?而且这些代码并没有做你认为它正在做的事情。
|
|
|
|
谢谢你的回复。编译器不会产生任何错误。你说的测试信息太长是对的,但我想它会截断。我会把它缩短并重试。当我说不可见时,一个线程中变量的内容不会在另一个线程中显示出来。例如,如果我将SysSoSoLeLyPosil语句移动到AppHB中,消息会像预期的那样通过USB端口发射出去。但是,如果我从另一个线程调用相同的命令,则什么也不会发生。这感觉与C#语言对开发人员施加的跨线程变量阻塞类似。
|
|
|
|
它会,然后您将得到一个未以null结尾的字符串,“什么都没发生”和“没出现”没有任何意义。你已经显示了一个打印语句;你自己得到了rn吗?还是什么都没有?你的代码是如何结构化的?在不同的C文件中有线程吗?如果是的话,你是如何分享他们之间的信息呢?
|
|
|
|
是的,代码在4个不同的文件中,其中2个文件与本讨论相关,每个文件作为HARMONY应用程序线程运行,其真实文件名是:-app.c-leddrive.c这是leddrive.c:在这个示例中,变量LED_MESSAGE在另一个文件中声明和初始化(APP.C/H)。在ReDaby.c中执行打印命令时,没有输出。如果我把它改为SysSunSaleSeLoad(“你好”!rn);然后“Hello!”消息从USB端口出来就好了。这表明打印命令正在工作,但是LED_MESSAGE的内容没有使其跨越线程边界(范围问题?).
|
|
|
|
C对线程一无所知,而且没有操作系统可以改变C程序中对象的可见性。如果您在不同的C文件中包含app.h,那么这很可能是您的问题;您错过了“ext.”。这个链接可能有帮助:http://www. gMeDEV.NET/A.文件C和C-R1798
|
|
|
|
只有小组成员才能发言,加入小组>>
5250 浏览 9 评论
2037 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2266 浏览 5 评论
788浏览 1评论
680浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
609浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 15:31 , Processed in 1.350239 second(s), Total 54, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号