永发信息网

单片机报错,:error C214: illegal pointer conversion

答案:2  悬赏:50  手机版
解决时间 2021-01-23 04:54
  • 提问者网友:人生佛魔见
  • 2021-01-22 22:49
#include "reg24le1.h"
#include "string.h"
/////////////////////////////////////////////////
unsigned int MP3data3[6]={0x7E,0x04,0x41,0x00,0x01,0xEF};
/////////////////////////////////////////////////////////

code unsigned int UART_BAUD_TBL[7] = { 607, 816, 920, 972, 998, 1011, 1015 };
//0----6,,,--> 1200, 2400, 4800, 9600, 19200, 38400, 57600
void UART_Init( unsigned char BaudIndex )
{
IEN0 &= ~( 1<<4 ); //Disable UART0 interrupt while initializeing
S0CON = ( 1<<6 ) | ( 1<<4 ); //MODE1, Enable receive
ADCON = 0x80; //Enable baudrate generator
PCON |= 0x80; //mode1
S0RELL = UART_BAUD_TBL[BaudIndex];
S0RELH = UART_BAUD_TBL[BaudIndex] >> 8;
IEN0 |= ( 1<<4 ); //Enable interrupt
P0DIR |= ( 1<<4 ); //P0.4, RXD, set as input
P0DIR &= ~( 1<<3 ); //P0.3, TXD, set as output
}
unsigned char TX_OK = 0;
static void UART0_ISR( void ) interrupt INTERRUPT_UART0
{
if( S0CON & ( 1<<1 ) )
{
//TX ok
S0CON &= ~( 1<<1 );
TX_OK = 1;
}
else if( S0CON & ( 1<<0 ) )
{
//RX ok
S0CON &= ~( 1<<0 );
P0DIR &= ~( 1<<2 ); //Set P0.2 as output
P0 ^= ( 1<<2 ); //Turn on the LED
S0BUF = S0BUF;
}
}

void main( void )
{
unsigned char i;
CLKCTRL = ( CLKCTRL | 0x80 ) & ~0x08;
UART_Init( 3 ); //baudrate = 9600
EA = 1;
UART0_SendStr( "nRF24LE1 UART Test Start!\r\n" );
while( 1 )
{
for(i=0;i<5;i++)
{
UART0_SendStr(MP3data3[i]);
}
}
}
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-01-22 23:38
非法的指针转换问题,类型不同的指针你给强制转换过去报的错,没有说哪一行吗?对照那一行去修改,你代码不全,很多函数不知道干嘛的,没法给你调试找错。
全部回答
  • 1楼网友:大漠
  • 2021-01-23 01:06
这是要在这儿回答的意思么。。 把数组改成字符串不难,用sprintf函数就行,但是现在的问题是,你这个函数uart0_sendstr里面的形参类型到底是啥,把这个函数粘贴出来让我看看。处理我不知道怎么处理,给你修改一下语法问题把
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯