完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好。
我需要发送5字节而不是最高的4,从UART组件发送缓冲区允许。我已经得到了TX模式,但根据数据表,当你增加缓冲区内部中断是自动启用的大小。然而,即使在阅读数据表3或4次,我不明白那个中断工作。我不知道不同的中断在组件安装选项做: 我也不知道如何使用这个在我的主。C代码,我需要添加一个新的中断处理程序,即使这是一个内部中断?我高度欣赏任何类型的代码示例,论述了这个所以我可以试着去理解它的原因现在我很失落。 提前感谢 以上来自于百度翻译 以下为原文 Hello. I need to send 5 bytes rather than the maximum of 4 that the tx buffer from the UART component allows. I already got it in TX mode but according to the datasheet, when you increase the size of the buffer an internal interrupt is automatically enabled. However, even after reading the datasheet 3 or 4 times, i don't understand how that interrupt works. I don't know what the different interrupt options in the component setup do: I also don't know how to use this in my main.c code, do I need to add a new interrupt handler even though this is an internal interrupt? I would higly appreciate any sort of code example that deals with this so I could try and understand it cause right now i'm quite lost. Thanks in advance |
|
相关推荐
5个回答
|
|
当你增加缓冲器(RX,TX或两者)内部中断是用来保持你的环形缓冲区。
使用API gettxbuffersize()看到多少字节仍然需要得到传播。不设置缓存你的需要量完全匹配,是一位慷慨的。使用20或80字节… 这是最简单的方法,不需要ISR组件。 鲍勃 以上来自于百度翻译 以下为原文 When you increase the buffers (RX, TX or both) an internal interrupt is used to maintain circular buffers for you. Use the API GetTxBuffersize() to see how many bytes still need to get transmitted. Do not set the buffersize to match exactly your needed amount, be a bit generous. Use 20 or 80 bytes... This is the easiest way, no isr component needed. Bob |
|
|
|
我的理解,你只需要将缓冲区的大小,当你需要时,你不需要添加一个自定义的中断。
内部发送中断服务程序会自动添加到报表系统数据传输软件缓冲区FIFO FIFO为空时。 希望它对你有意义。 以上来自于百度翻译 以下为原文 As I understanding, you only need to extend the buffer size when you need, and you don't need to add a custom interrupt. The Internal Tx interrupt ISR is automatically added to report the system to transmit the data from software buffer to fifo when the fifo is empty. Hope it can make sense for you. |
|
|
|
ncmza 发表于 2018-8-17 02:44 谢谢你,鲍勃.马洛。现在我使用API中的RealTeXDATA,我的代码就是这样的: 如果(uARTHAR11Read txStUsUs)!= uARTHAR11TXYSTSYFIFOXNOTHOLL FULL){ 对于(j=0;j<sieof(data);j++){ UARTHAR11WRITETXDATA(数据[J]); } } 那么,在发送信息之前,我应该验证TX缓冲区吗? 如果(UARTHAR11Read txStUsUs)!= uart_1_tx_sts_fifo_not_full)&;&;uart_1_gettxbuffersize() = = 0){ 对于(j=0;j<sieof(data);j++){ uart_1_writetxdata(数据[ J ]); } } ? 或者我应该使用非writetxdata功能,喜欢PutChar吗? 以上来自于百度翻译 以下为原文 Thanks bob.marlowe. Right now im using the WriteTxData from the API and my code is something like this: if(UART_1_ReadTxStatus() != UART_1_TX_STS_FIFO_NOT_FULL){ for(j=0;j } } So should I verify the Tx buffer before sending info, like this: if((UART_1_ReadTxStatus() != UART_1_TX_STS_FIFO_NOT_FULL) && UART_1_GetTxBufferSize()==0){ for(j=0;j UART_1_WriteTxData(data[j]); } } ? Or should I use a function other than WriteTxData, like the PutChar?
|
|
|
|
60user159 发表于 2018-8-17 03:03 谢谢指环。 然而,你似乎没有在Tx缓冲区做任何验证。从读取数据表时,我了解到当使用RealTeXDATA函数时,必须验证缓冲区的状态,否则您可以重写它。你为什么不这么做? 谢谢。 以上来自于百度翻译 以下为原文 Thanks ring. However you don't seem to do any verification on the Tx buffer. From reading the datasheet, I understood that when using the WriteTxData function, you had to verify the state of the buffer because otherwise you could overwrite it. Any reason why you don't do it? Thanks. |
|
|
|
asfszczgv 发表于 2018-8-17 03:25 便于使用: 不要使用WrimeXDATA()。 使用PutCar()或PutsReg()。缓冲区中的房间检查是由API完成的。 检查是否所有的零字节已发送gettxbuffersize()。 鲍勃 以上来自于百度翻译 以下为原文 For ease of use: Do not use WriteTxData(). Use PutChar() or PutString(). The checking for room in buffers is done by the APIs. Check GetTxBufferSize() for zero to see if all bytes have been transmitted. Bob |
|
|
|
只有小组成员才能发言,加入小组>>
752个成员聚集在这个小组
加入小组2073 浏览 1 评论
1828 浏览 1 评论
3642 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1764 浏览 6 评论
1515 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
512浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
362浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
412浏览 2评论
359浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
864浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 10:44 , Processed in 1.968503 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号