可以考虑使用int16_t/uint16_t这种具有确定长度数据类型的C99标准定义 但是现在问题是 rtdef.h 定义的 32 位类型 rt_int32_t 在 DSP 的编译器上实际是 16 位,而 RT-Thread 代码大量使用了 rt_int32_t 类型,所以造成了一些问题,所以最好修改 rtdef.h 的定义。 Contributor liruncong commented Feb 2,...
rt_int32_t uart_write(rt_uint8_t* data, rt_uint32_t len) {rt_size_t ret_size=0; if ((data == NULL) || (len < 1)) {return 0; } if (uart_handle == RT_NULL) {return -RT_ERROR; } // RS485_DIR_TX; ret_size=rt_device_write(uart_handle, 0, data, len); // if...
4.设置PWM参数 rt_err_t rt_pwm_set(struct rt_device_pwm *device, int channel,rt_uint32_t period,rt_uint32_t pulse); struct rt_device_pwm *device PWM设备句柄 int channel PWM通道数 rt_uint32_t period PWM周期,单位ns rt_uint32_t pulse PWM脉冲宽度,单位ns 如果设置成功,会返回RT_EOK...
rt_int32_t (*get_scl)(void *data); 获取SCL电平 void (*udelay)(rt_uint32_t us); 软件I2C时序所需要的的延时函数 rt_i2c_bit_add_bus接口,主要注册软件I2C的引脚操作的回调函数。 bit_opt层:可以归纳为驱动层。其主要实现软件I2C的时序等逻辑,并提供对应的I2C的收发处理函数,为drv_soft_i2c层提供...
9inthwtimer_init(void) 10{ 11rt_err_tret = RT_EOK; 12rt_hwtimer_mode_tmode;/* 定时器模式 */ 13rt_uint32_tfreq =1000000;/* 计数频率 */ 14/* 查找定时器设备 */ 15hw_dev = rt_device_find(HWTIMER_DEV_NAME); 16if(hw_dev == RT_NULL) ...
rt-thread 32位有无符号类型 /* date type defination */ typedef signed char rt_int8_t; typedef signed short rt_int16_t; typedef signed long rt_int32_t; typedef unsigned char rt_uint8_t; typedef unsigned short rt_uint16_t; typedef unsigned long rt_uint32_t;...
int get_lowest_ready_priority(rt_uint32_t rt_thread_ready_priority_group) { uint8_t i; uint32_t m=1; if(rt_thread_ready_priority_group==0) return -1; for(i=0;i<32;i++) { if(m&rt_thread_ready_priority_group) return i; ...
typedef struct rt_mailbox *rt_mailbox_t; #endif 1.2 邮箱操作 1.2.1 创建和删除 同以前的线程那些一样,动态的方式,先定义一个邮箱结构体的指针变量,接收创建好的句柄。 创建邮箱: /** 参数的含义: 1、name 邮箱名称 2、size 邮箱容量(就是多少封邮件,4的倍数) ...
rt_err_t rt_thread_sleep(rt_tick_t tick); /* 睡眠时间,单位为 时钟节拍 */rt_err_t rt_thread_delay(rt_tick_t tick); /* 延时,单位为 时钟节拍 */rt_err_t rt_thread_mdelay(rt_int32_t ms); /* 单位为 毫秒 */ 这三个函数的作用相同,调用它们可以使得当前线程进入挂起状态,并持续一段...
int k ; } __attribute((aligned(64))) test; 2、定义线程控制块 二者用后缀t区分,有t的是指针类型,不知道为啥控制块没有用typedef struct rt_thread { void *sp; /* 线程栈指针 */ void *entry; /* 线程入口地址 */ void *parameter; /* 线程形参 */ ...