小编Shi*_*hab的帖子

嵌入式Keil C支持多线程吗?

我正在使用Keil C编译器在LM3S6965评估板上开发嵌入式应用程序.有没有创建多线程嵌入式应用程序的选项?

c embedded multithreading keil

5
推荐指数
2
解决办法
2231
查看次数

如何使用sprintf在字符串中包含十六进制值

我想在c中包含i hex格式的值.

for(i=0;i<10;i++)
   sprintf(s1"DTLK\x%x\xFF\xFF\xFF\xFF\xFF\xFF",i);
Run Code Online (Sandbox Code Playgroud)

但上面的代码输出一个错误:\ x使用没有后面的十六进制数字

请任何人建议我一个正确的方式....

c printf hex

5
推荐指数
1
解决办法
4171
查看次数

如何在Stellaris中的程序之间跳转

我正在为Stellaris LM3S1607芯片开发一个引导加载程序.我正在使用Keil MicroVision4 C编译器.我们的想法是创建2个独立的固件,一个将更新另一个.在firmware1中,我下载了firmware2文件,并将其写入地址0x3200的闪存中.直到这里它才有效.我还验证了数据写入闪存是否正确.现在我在flash中有两个应用程序.一个是我的uip引导装载程序,而seoncd就是我的主要项目.我想知道如何从第一个程序跳转到位于0x3200的第二个程序.

如果有人能帮我跳,那就太好了.谢谢

c embedded bootloader keil

5
推荐指数
1
解决办法
2764
查看次数

函数参数,如C中的printf

我想实现一个Myprintf()接受类似参数的函数printf().现在我这样做:

sprintf(demoString, "Num=%d String=%s", num, str);
Myprintf(demoString);
Run Code Online (Sandbox Code Playgroud)

我想将此函数调用替换为:

Myprintf("Num=%d String=%s", num, str);
Run Code Online (Sandbox Code Playgroud)

这怎么可能?

c printf

3
推荐指数
1
解决办法
5799
查看次数

将C结构转换为unsigned char

我有一个函数UartSend()通过uart将数据发送到网络.它需要参数unsigned char和一个整数

UartSend(unsigned char *psend_data,int length);
Run Code Online (Sandbox Code Playgroud)

我想通过这个功能发送一个结构

#pragma pack(push, 1)
struct packet
{

    int a;
    char b[3];
    ...

}PacketData;

#pragma pack(pop)
Run Code Online (Sandbox Code Playgroud)

如何将此结构转换为unsigned char以通过UartSend发送此数据?谢谢..

c casting structure pragma

1
推荐指数
1
解决办法
6293
查看次数

从源构建Titanium Mobile SDK时出错

我从github下载了钛移动sdk的源代码.我在windows 7中安装了python,scons,jdk和android sdk.我在环境变量中为java,android sdk等设置了路径.但在使用scons进行编译时,会出现以下错误.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\Shihab>cd  C:\Project\titanium_mobile

C:\Project\titanium_mobile>scons
scons: Reading SConscript files ...
Building MobileSDK version 3.1.0, githash 2d79a72
KeyError: 14:
  File "C:\Project\titanium_mobile\SConstruct", line 115:
    sdk = AndroidSDK(ARGUMENTS.get("android_sdk", None), 14)
  File "C:\Project\titanium_mobile\support\android\androidsdk.py", line 49:
    self.set_api_level(api_level)
  File "C:\Project\titanium_mobile\support\android\androidsdk.py", line 53:
    self.find_platform_dir()
  File "C:\Project\titanium_mobile\support\android\androidsdk.py", line 127:
    old_style_dir = os.path.join(self.android_sdk, 'platforms', android_api_leve
ls[api_level])

C:\Project\titanium_mobile>
Run Code Online (Sandbox Code Playgroud)

如何解决此错误?

android scons titanium titanium-modules titanium-mobile

1
推荐指数
1
解决办法
731
查看次数

确保字符串与c中的某种格式匹配

如何比较字符串以匹配c中的特殊格式?

我想检查字符串是否与“ PCn.Value”匹配。

即。它必须匹配PC1.value,PC2.value,...

c string

1
推荐指数
1
解决办法
3261
查看次数

c中增量操作的评估顺序

我执行了以下代码.


int main(void)
{
    int c;
    c=0;
    printf("%d..%d..%d \n", c,c,c);
    c=0;
    printf("%d..%d..%d \n", c,c,c++);
    c=0;
    printf("%d..%d..%d \n", c,c++,c);
    c=0;
    printf("%d..%d..%d \n", c++,c,c);

return 0;}
Run Code Online (Sandbox Code Playgroud)

我期望输出为

0..0..0

1..1..0

0..1..0

0..0..0

但是输出(用gcc编译)是

0..0..0

1..1..0

1..0..1

0..1..1

我的期望有什么问题?在gcc中,评估顺序是从右到左.是吗?

c operator-precedence post-increment

-3
推荐指数
1
解决办法
579
查看次数