- 博客(6)
- 收藏
- 关注
原创 创建队列流程
1.初始化队列:给队列属性参数赋值,再通过mq_open函数创建队列void ExternalInit(void){ struct mq_attr qattr; //队列属性 qattr.mq_flags = 0; qattr.mq_maxmsg = EXT_MAX_QUEUE_SIZE; qattr.mq_msgsize = sizeof(ExternalEvent); extOutQueue = mq_open("external_out", O_CR...
2021-10-20 19:28:11
726
原创 创建线程 Thread_Creat
1. 举例创建线程调用函数:pthread_create(&extTask, NULL, ExternalTask, NULL);extTask 代表线程名称,用于创建和退出线程。定义:static pthread_t extTask;typedef ptw32_handle_t pthread_t;typedef struct { void * p; /* Pointer to actual object */ unsigned ...
2021-10-20 18:53:20
247
原创 切换参数时跳跃不使能参数的方法
举例说明:假如参数表中共37个参数,有的参数使能,有的不使能,按按键循环时显示使能的参数,跳过不使能的参数,且参数的使能项和非使能项是不固定的。实现方法如下:1.首先定义两个按位定义的变量,因目前单片机系统是32位,因此定义一个32位的变量,一个8位变量(根据参数个数进行调整),这个变量用来存放参数的使能位,即bit0是第一个参数的使能位,bit1是第二个变量的使能位,依次类推。。。ParaALNumberList_Def ParaALValid;ParaAHNumberList_Def P..
2021-07-28 20:10:22
196
原创 红外接收器设置方法
1. 设置外部中断触发方式:根据波形设置接收的第一个沿为触发中断的方式,如下图红外发送为上升沿,则接收设置为下降沿触发。2. 设置定时器。定时器的作用是计算两个外部中断的时间间隔,以此来解析接收的数据。因此设置的时间间隔要大于最大的外部中断间隔时间,如下图最长的有为27T≈7.5ms,定时器应设置>8ms3. 下降沿触发中断后,先读取当前的定时器计数,根据读取的计数判断发送的是起始码、数据0、数据1还是尾码,然后清计数重新开始计时。上图尾码只触发定时器开始计数,当时间超过定时器时间后,认为
2021-07-23 20:40:00
1419
原创 宏定义技巧
1.宏定义数组成员,举例如下:unsigned char testArray[10]#define test(x) testArray[x] // 调用test(x) 即代表testArray[x]2.宏定义结构图数组中的数组成员,举例如下:typedef struct{ u32 update_addr; u8* update_buf; u16 update_length; u16 _test[10];}Update_disp_Def...
2021-07-14 20:16:04
1656
原创 四舍五入公式
设int型变量 num,以5为单位取整,公式:(num / 5 ) * 5设unsigned int 型变量 num,以10为单位取整,公式:((num + 5) / 10) * 10设signed int 型变量 num,以10为单位取整,公式:((num - 5) / 10) * 10
2021-07-14 14:27:46
830
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人