完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用的是5502pgf300mhz的芯片,用max3232芯片与rs232进行连接,目前测试程序是看串口发送数据给dsp再接收回串口
现在有两个问题,请各位大神指教: 1.根据设备管理器com4,波特率9600,数据8位,无校验,1位停止配置进行操作,先运行程序再开串口调试助手,出现乱码错误,请问问题出在哪儿的。如图: 2.上面问题解决的基础上,需要对其进行改动,不是从pc上发送和接收,只需要将dsp运算的结果通过串口传输出来,是不是利用csl的uart_write()宏来设置? 附上程序: #include #include #include #include #include #include #include #include void delay(unsigned int N); /* Reference start of interrupt vector table */ /* This symbol is defined in file, vectors.s55 */ extern void VECSTART(void); Uint16 i = 0; Uint16 j = 0; Uint16 DestData,DestData1; Uint16 DataCount=0; /* 通过定义宏来控制两个外围存储器映射的寄存器,从而实现对GPIO口的控制 */ #define GPIODIR (*(volatile ioport Uint16*)(0x3400)) #define GPIODATA (*(volatile ioport Uint16*)(0x3401)) //Uint16 length = 4; //char pbuf[4] = [0x74, 0x65, 0x73, 0x74]; //CSLBool returnFlag; /*UART的中断程序*/ interrupt void UartIsr(void) [ // Transimit seriz of serial debugger on pc is: // 1112131415161718191A1B1C1D1E1F2021222324 UART_FSET(URLCR, DLAB, 0); /* wait for RX empty */ while(!UART_FGET(URLSR,DR)); DestData = UART_RGET(URRBR); DestData1=DestData; UART_FSET(URLCR, DLAB, 0); UART_RSET(URTHR,DestData1); ] void Uart_Config(void) [ /* Set BSR to disable SP2MODE */ CHIP_FSET(XBSR, SP2MODE,0) ; /* Disable all UART events */ UART_FSET(URLCR,DLAB,0); UART_RSET(URIER, UART_RINT); /* Reset and disable FIFOs */ UART_RSET(URFCR, 0x7); UART_RSET(URFCR, 0); /* Set DLL and DLM to values appropriate for the required baudrate */ UART_FSET(URLCR, DLAB, 1); // DLAB = 1 //UART_RSET(URDLL, 0x45); // 9600bps UART_RSET(URDLL, 0xE8); // 9600bps UART_RSET(URDLM, 0x01); UART_FSET(URLCR, DLAB, 0); // DLAB = 0 /* Setup word size, stop bits, parity */ UART_RSET(URLCR, 0x03); // 8 data bits, no parity, one stop bit /* Disable loopback control */ UART_RSET(URMCR, 0); /* UART out of reset */ UART_FSET(URPECR,URST,1); /* Temporarily disable all maskable interrupts */ //IRQ_globalDisable(); /* Clear interrupt enable bit */ IRQ_disable(IRQ_EVT_RINT2); /* Clear any pending Timer interrupts */ IRQ_clear(IRQ_EVT_RINT2); /* Place interrupt service routine address at */ /* associated vector location */ IRQ_plug(IRQ_EVT_RINT2, &UartIsr); /* Enable Timer interrupt */ IRQ_enable(IRQ_EVT_RINT2); /* Enable all maskable interrupts */ //IRQ_globalEnable(); // IRQ_globalDisable(); ] void main(void) [ /* Initialize CSL library - This is REQUIRED !!! */ CSL_init(); /* PLL configuration structure used to set up PLL interface */ // 主频为300Mhz PLL_setFreq(1, 0xf, 0, 1, 3, 3, 0); IRQ_setVecs((Uint32)(&VECSTART)); Uart_Config(); /* Enable all maskable interrupts */ IRQ_globalEnable(); // returnFlag = UART_write(&pbuf[0],length,0); for(;;) [ for(i=0; i<16; i++) [ delay(300); ] ] ] void delay(unsigned int N) [ unsigned int i,j; for(i=0;i ] |
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
56浏览 29评论
130浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
201浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
57浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:50 , Processed in 0.938354 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号