如何设置多次写串口的优先级
现在我有多个地方需要写入串口1(都只能往这个串口写):游戏手柄的状态值以及其它地方的用户输入。比如设置一个定时器每50毫秒获取游戏手柄的状态值(一般是获取用户操纵手柄的值),然后把这些状态值写进串口。但是如果此时用户打开了一个其它对话框,输入比游戏手柄优先级更高的指令,然后写入串口。这时就要求对每50毫秒获取游戏手柄状态值的那个操作进行阻塞,优先写入优先级更高的指令。写完之后再继续获取游戏手柄的状态值。
好像arm处理器中有设置缓冲区优先级的做法,不知道能不能模仿这个做法。现在我想到的是一种做法是多线程:设置一个定时器每50毫秒获取游戏手柄的状态值然后开一个线程将其写到串口;假如用户将优先级更高的指令再开一个线程写入到串口,将游戏手柄的线程阻塞,待这个线程写入完成再允许那个游戏手柄的线程继续运行。不知道这个做法是否可行?
[解决办法]
up
帮顶
[解决办法]
//你要保证优先级高的内容先扔到串口的发送缓冲区。
//否则都是白搭。
[解决办法]
提个建议给你参考:
用一个线程来处理串口,其它线程通过PostThreadMessage给该线程发消息来传递要处理的任务,不同优先级的任务使用不同的消息。处理线程WaitMessage等待消息,然后先PeekMessage接收高优先级消息,再PeekMessage接收低优先级消息,如此循环。
[解决办法]
是不是正在执行的优先级低的线程碰到优先级高的就会阻塞,待高的执行完低的会继续执行啊?
// 是在一个时间片结束后,优先级高的可以抢先获得时间片,而不是阻塞其他线程的执行。
[解决办法]
顶,硬件操作入门好高啊
[解决办法]