麻烦大神写的代码去哪找帮忙解释一下这段代码,尽量详细一点,谢谢!代码如下:

大神帮忙解释一下这段代码……_百度知道查看: 1312|回复: 11
nios2串口通信问题,麻烦大神们帮我解答一下,谢谢
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 woaiplay 于
10:16 编辑
1.就是那个结构体为什么要设置成32位的,我觉的在建立结构体的时候就是希望可以结构体中的变量直接映射到寄存器的地址,然后方便对寄存器进行操作,不知道我的说法对不对。现在既然寄存器是16位的&&可是设置的结构体变量为32位的,这不会导致地址偏移变大而没有办法寻址到寄存器么
2.串口进中断后为什么可以不清中断?
static void uart_ISR(void)
& && &&&while(!(UART-&STATUS.BITS.RRDY));
& && &&&uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;
& && &&&if(uart.receive_buffer[uart.receive_count-1]=='\n'){
& && && && && & uart.receive_buffer[uart.receive_count]='\0';
//& && && && && & uart_send_string(uart.receive_count,uart.receive_buffer);
& && && && && & uart.receive_count=0;
& && && && && & uart.receive_flag=1;
代码中可以看出来如果想将RXDATA中的数据赋给buffer, &uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;&这个语句要运行很多次,那也就是只要触发了中断就会不止一次的进入中断,那系统凭借什么来判断中断结束了呢?函数中也没有对中断寄存器进行清除?
麻烦各位好心的大神帮忙解答一下& &万分感谢
NIOS是32bit处理器 跟ARM是一样
NIOS是32bit处理器 跟ARM是一样
麻烦AVIC大神说的具体一点,32位处理器也就代表了NIOS2的的寄存器都是以32位间隔的地址寻址的么?比如说一个UART,如果RXDATA寄存器的寻址地址为0X00,那TXDATA的寻址地址就是0X04么?
也就是说即便RXDATA寄存器只占用16位,但是0X02和0X03两个地址内的数据也是空的,为了方便寻址么?
还有第二个问题也麻烦帮我解释一下,万分感谢!
这个是CPU体系结构的知识,就是说32bit处理器,一次处理32bit数据,寄存器都是32bit的,你可以看NIOS软核的寄存器描述,里面说的很清楚
这个是CPU体系结构的知识,就是说32bit处理器,一次处理32bit数据,寄存器都是32bit的,你可以看NIOS软核的 ...
可是NIOS软核的那个手册里很明确的的写着UART有6个16位的寄存器,分别是RXDATA,TXDATA,CONTROL,………………
还有大神其实第二个问题是我最纠结的&&麻烦给我解答下(一楼有写),万分感谢,我非常喜欢你的视频!
这个是CPU体系结构的知识,就是说32bit处理器,一次处理32bit数据,寄存器都是32bit的,你可以看NIOS软核的 ...
可是NIOS软核的那个手册里很明确的的写着UART有6个16位的寄存器,分别是RXDATA,TXDATA,CONTROL,………………
还有大神其实第二个问题是我最纠结的&&麻烦给我解答下(一楼有写),万分感谢,我非常喜欢你的视频!
这个是CPU体系结构的知识,就是说32bit处理器,一次处理32bit数据,寄存器都是32bit的,你可以看NIOS软核的 ...
可是NIOS软核的那个手册里很明确的的写着UART有6个16位的寄存器,分别是RXDATA,TXDATA,CONTROL,………………
还有大神其实第二个问题是我最纠结的&&麻烦给我解答下(一楼有写),万分感谢
高16bit空着就可以了
中断可以自动清除,这个NIOS可以帮你处理好
本帖最后由 woaiplay 于
14:46 编辑
高16bit空着就可以了
中断可以自动清除,这个NIOS可以帮你处理好
关于AVIC大神写的有关中断函数的代码如下:& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &&&代码中可以看出来如果想将RXDATA中的数据赋给buffer, &uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;&这个语句要运行很多次,直到遇到字符'\n'则表示收到全部数据才进入IF语句,那也就是只要触发了中断就会不止一次的进入中断,那系统凭借什么来判断中断结束的呢?系统是如何在发送数据之后很智能的不再进入中断了呢?如果是NIOS自动清除的中断,那他会在什么时候完成这一指令呢?我觉得程序中并没有给中断函数这个功能,麻烦AVIC大神再讲细致一点,万分感谢!!!
static void uart_ISR(void)
& && &&&while(!(UART-&STATUS.BITS.RRDY));
& && &&&uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;
& && &&&if(uart.receive_buffer[uart.receive_count-1]=='\n'){
& && && && && & uart.receive_buffer[uart.receive_count]='\0';
//& && && && && & uart_send_string(uart.receive_count,uart.receive_buffer);
& && && && && & uart.receive_count=0;
& && && && && & uart.receive_flag=1;
高16bit空着就可以了
中断可以自动清除,这个NIOS可以帮你处理好
关于AVIC大神写的有关中断函数的代码如下:& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &&&代码中可以看出来如果想将RXDATA中的数据赋给buffer, &uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;&这个语句要运行很多次,直到遇到字符'\n'则表示收到全部数据才进入IF语句,那也就是只要触发了中断就会不止一次的进入中断,那系统凭借什么来判断中断结束的呢?系统是如何在发送数据之后很智能的不再进入中断了呢?如果是NIOS自动清除的中断,那他会在什么时候完成这一指令呢?我觉得程序中并没有给中断函数这个功能,麻烦AVIC大神再讲细致一点,万分感谢!!!
static void uart_ISR(void)
& && &&&while(!(UART-&STATUS.BITS.RRDY));
& && &&&uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;
& && &&&if(uart.receive_buffer[uart.receive_count-1]=='\n'){
& && && && && & uart.receive_buffer[uart.receive_count]='\0';
//& && && && && & uart_send_string(uart.receive_count,uart.receive_buffer);
& && && && && & uart.receive_count=0;
& && && && && & uart.receive_flag=1;
高16bit空着就可以了
中断可以自动清除,这个NIOS可以帮你处理好
AVIC大神您写的有关中断函数的代码如下:& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &&&代码中可以看出来如果想将RXDATA中的数据赋给buffer, &uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;&这个语句要运行很多次,直到遇到字符'\n'则表示收到全部数据才进入IF语句,那也就是只要触发了中断就会不止一次的进入中断,那系统凭借什么来判断中断结束的呢?系统是如何在发送数据之后很智能的不再进入中断了呢?如果是NIOS自动清除的中断,那他会在什么时候完成这一指令呢?我觉得程序中并没有给中断函数这个功能,麻烦AVIC大神再讲细致一点,万分感谢!!!
static void uart_ISR(void)
& && &&&while(!(UART-&STATUS.BITS.RRDY));
& && &&&uart.receive_buffer[uart.receive_count++] = UART-&RXDATA.BITS.RECEIVE_DATA;
& && &&&if(uart.receive_buffer[uart.receive_count-1]=='\n'){
& && && && && & uart.receive_buffer[uart.receive_count]='\0';
//& && && && && & uart_send_string(uart.receive_count,uart.receive_buffer);
& && && && && & uart.receive_count=0;
& && && && && & uart.receive_flag=1;
NIOS闭源的,所以内部如何来操作,我们无从知晓
Powered by求大神帮忙解释一下这段js代码_百度知道已收藏本页面
我女儿的作业,各位大神帮忙解一下,谢谢了!
A3B4学2与1玩3好5
7+6明明是3,说玩是7的纳闷怎么算的?
A3、B4、学2、与1、玩7、好9。
A3 B4学2与1玩7好9
a是2。b是5
后才能发表评论
你可能喜欢的图片笑话
最受欢迎的爆笑笑话}

我要回帖

更多关于 dnf代码大神吧 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信