完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#include "altera_avalon_uart_regs.h" #include "system.h" #include "altera_avalon_pio_regs.h" #include "alt_types.h" #include "sys/alt_irq.h" #include "string.h" #include "unistd.h" #define UART_BASE 0x5020 #define UART_IRQ 1 #define tiME_DELAY 1000000 unsigned char buff[100]; alt_u8 i=0; void Uart_send(unsigned char data) { alt_u16 status; status=IORD_ALTERA_AVALON_UART_STATUS(UART_BASE); while(!(status&0x0040)) status=IORD_ALTERA_AVALON_UART_STATUS(UART_BASE); IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE,data); data=IORD_ALTERA_AVALON_UART_TXDATA(UART_BASE); } void Uart_send_n(unsigned char *ptr) { while(*ptr) { Uart_send(*ptr); ptr++; } } char Uart_receive(void) { alt_u16 status; status=IORD_ALTERA_AVALON_UART_STATUS(UART_BASE); while(status&0x0080) { status=IORD_ALTERA_AVALON_UART_STATUS(UART_BASE); *(buff+i)=IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE); i++; if(i>100) { i=0; } } return 0; } void CLR_Buf(void) { unsigned char k; for(k=0;k<100;k++) { buff[k] = 0; } i = 0; } void Uart_init() { IOWR_ALTERA_AVALON_UART_CONTROL(UART_BASE,0X80); IOWR_ALTERA_AVALON_UART_STATUS(UART_BASE,0X0); IOWR_ALTERA_AVALON_UART_RXDATA(UART_BASE,0X0); } int main (void) __attribute__ ((weak, alias ("alt_main"))); void alt_main (void) { Uart_init(); CLR_Buf(); Uart_send_n("NH"); Uart_send(0x0d); Uart_send(0x0a); usleep(TIME_DELAY); Uart_receive(); while(strstr(buff,"OK")==NULL) { CLR_Buf(); Uart_send_n("NH"); Uart_send(0x0d); Uart_send(0x0a); usleep (TIME_DELAY); Uart_receive(); } Uart_send_n("NEXT"); Uart_send(0x0d); Uart_send(0x0a); usleep(TIME_DELAY); } 我想做一个寄存器方式的收发程序,当发出你好(NH)时,收到OK时,继续发送NEXT,否则继续发送你好(NH),直到收到OK为止,该程序在串口调试助手中,总是连续发出你好(NH),不管输入什么都没有结果。谢谢大家指导一下错误所在。 |
|
相关推荐
1个回答
|
|
串口调试助手你输入的是“OK”还是hex?要确保两者对应的格式一致
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1413 浏览 1 评论
1208 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1419 浏览 0 评论
913 浏览 0 评论
2223 浏览 0 评论
1425 浏览 34 评论
5610 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:10 , Processed in 0.631811 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号