static int aRGB_led_sample(int argc, charargv[]) { /查找设备 */ pwm_dev = (struct rt_device_pwm) rt_device_find(PWM_DEV_NAME); if (pwm_dev == RT_NULL) { rt_kprintf("pwm sample run failed! can't find %s device!n", PWM_DEV_NAME); return RT_ERROR; } rt_uint32_t ui32_...
rt_err_t rt_mq_send_wait(rt_mq_t mq, const void *buffer, rt_size_t size, rt_int32_t timeout) 此函数的参数timeout为发送等待超时时间,单位为系统时钟节拍。其他参数与rt_mq_send()相同。 如果消息队列已经满了,发送线程会根据设定的timeout参数等待消息队列中因为收取消息而空出空间。若超时时间到...
信号量控制块是 RT-Thread 用于管理信号量的一个数据结构,信号量控制块的结构体struct rt_semaphore定义如下,rt_sem_t表示信号量的句柄,即指向信号量控制块的指针。 AI检测代码解析 struct rt_semaphore { struct rt_ipc_object parent; /* 继承自 ipc_object 类 */ rt_uint16_t value; /* 信号量的值 *...
volatilert_uint16_trx_status, rx_length; rt_uint16_t*data; rt_uint16_tdummy; rt_int32_tlen; p =NULL; __error_retry: DM9000_ReadReg(DM9000_MRCMDX);// 假读 rxbyte = (rt_uint8_t)DM9000->DATA;// 进行第二次读取 if(rxbyte)// 接收到数据 { if(rxbyte >1)// rxbyte大于1,接...
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_uint16_tvalue;/**< value of semaphore. */ }; typedefstructrt_semaphore*rt_sem_t; #endif structrt_ipc_object { structrt_objectparent;/**< inherit from rt_object */ rt_list_tsuspend_thread;/**< threads pended on this resource */ ...
rt_err_t rt_device_control(rt_device_t dev, int cmd, void *arg) 控制设备 如果你学习过Linux,你是否听过一句话,一切设备皆文件。在Linux中对设备的访问有如下接口open,read,write,close等,其实RTT提供的设备驱动API也是如此。 该接口访问的层次如下: 如上图所示,_pin_control()应该包含:GPIO的模式设置,...
rt_err_t rt_sem_take(rt_sem_t sem, rt_int32_t time) 1. 通过take函数 rt_sem_take获取信号量指向的资源 ,当信号量的值大于0.线程成功获得信号量,然后value的值-1, 当调用 take函数 rt_sem_take;信号量的值=0,信号量所指向的共享资源不可用,申请该信号量的线程,会根据take参数做出相应的动作, t...
intrt_hw_usart_init(void){rt_err_tresult=0;rt_size_tobj_num=sizeof(uart_obj)/sizeof(structstm32_uart);stm32_uart_get_config();for(inti=0;i<obj_num;i++){/* init UART object */uart_obj[i].config=&uart_config[i];uart_obj[i].serial.ops=&stm32_uart_ops;/* register UART ...
`rt_forceinline rt_uint8_t _serial_fifo_pop_data(struct rt_serial_fifo *fifo)` 弹出一个数据(不完整实现,具体见下文) 读设备过程 读设备对应中断接收。 rt_inline int _serial_int_rx(struct rt_serial_device *serial, rt_uint8_t *data, int length) ...