|
楼主 |
发表于 2011-12-16 14:13:44
|
显示全部楼层
回复【3楼】nazily215
-----------------------------------------------------------------------
回复【5楼】ustbyf
-----------------------------------------------------------------------
我现在这么根据《μC/OS-II V2.90 Reference Manual》 这么编写了一段程序,怎么提示不能类型转换呢,恳求大侠指点
OS_EVENT *Key_Set_Box ;
Key_Set_Box = OSMboxCreate((void *) 0);
static void App_TaskLed(void *p_arg)
{
void* pmsg;
INT8U Set;
while (DEF_TRUE)
{
pmsg = OSMboxAccept(Key_Set_Box);
if( pmsg != (void*)0)
{
Set = (INT8U)(* pmsg); //错误就出在这里,我觉得应该对啊,pmsg是void*型,我通过)(* pmsg)取出指针里面的内容,利用(INT8U)强制类型转换,怎么就错误呢?
}
}
}
void ISR_EXTI9_5_Handler(void)
{
INT8U err , Isr_Set = 2, Isr_Shift = 2;
if(EXTI_GetITStatus(EXTI_Line9) != RESET) /* 按键set */
{
OSTimeDly(10);
if(!(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)))
{
OSTimeDly(10);
if(!(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)))
{
Isr_Set = 1;
err = OSMboxPost(Key_Set_Box, (void*)Isr_Set);
}
}
EXTI_ClearITPendingBit(EXTI_Line9); /* Clear the EXTI Line 9 */
}
IAR编译提示错误如下:Error[Pe171]: invalid type conversion D:\ucOS\2011-12-16_MessBox\App\app.c 175 |
|