完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,
我正在研究PSoC 6 BLE先锋套件的SyTube和UART。SyCUL在主回路中产生1ms中断和闪烁GPIO为500毫秒的周期。UART工作为115200波特率,使用RX中断接收字节,在主循环中发送接收到的数据。源代码如下。 当SyTube和UART都在CordX-M4内核上运行时,它运行良好。LED闪烁作为500毫秒CyCyle,Tera Term可以相应地接收TX数据。在M4内核启动后,CordX-M0+将进入深度睡眠。当我尝试在CordX-M0+内核上用SyTobe运行LED闪烁功能时,LED闪光灯似乎工作得很好,但是CARTEX-M4内核上的UART回环功能存在问题。 请你帮忙处理这个案子好吗? 如果需要,我可以上传我的测试项目。 谢谢您! 最好的问候, 雷 包括“项目H” UIT88T UARTXFLAG=0; UIT88T UARTXDAT=0; UIT32 32 t SyStkcNT=0; 空隙ISRUUART(无效) { *检查“RX FIFO不是空中断”*/ 如果(UARTHI HW-GT;InthRx掩码和SCBIInrxRxMaskddNoToPosiTyjyMSK)!= 0) { /*清除UART“RX FIFO不空中断”*/ UARTHY-HW-GT;InTyrx=UARTHY-HW-GT; UARTRXDAT = CysScBuUARTHEGET(UARTHYHW); UARTXFLAG=1; } } 无效SystickIsrHandler(空) { SysSkycNT++; } 主(空) { UIT1616T I=0; CysySysKysInIT(CysySysKycOcthySoxCyl CLKYMIO,7999); 对于(i=0u;i & lt;CythySysSythOnthoFi回调;++i) { 如果(CythSysKygGETCalBeC后撤(i)=null) { CyySysKyStEnter回调(I,SysTickIsrHandler); 断裂; } } 黄花菜; *启动UART操作。*/ InItStay= CysScBuUARTHITIIT(UARTHYHW,和UARTHI CONFIG,和UARTHI上下文); 如果(处于)状态!CycScBuUARTION成功 { } CycScBuUARTHI启用(UARTHYHW); *向终端发送报头。*/ CycScBuutuPuthPuxSoupe(UARTHYHW)、“R.*********************************************************************************************************************************************************************************************************************************************************************************************************************” CysScBuuTrpPoStand(UARTHYHW),这是UART示例,它使用用户ISR来演示UART操作rn); CysScBuUARTHIPPASTHIN(UARTHYHW),“如果您能够读取此文本,则终端连接被正确配置。RN”; CysScBuUARTHPUTSHIPE(UARTHYHW),开始发送字符以查看终端中的回声。RN“”; CycScBuutupPixStub(UARTHYHW,\RN); *只清除RX FIFO而不是空中断位*/ UTARTH-HW-GT;InthRx掩码=SCBI InthRx ************* CythySythTnInIT(&UARTHI SCBIIQYFCFG,ISRUUART); /*启用中断*/ NVILIN EnabeReq(UARTHI SCBIIQLYCFG.InSRC); *使EnabeLyIrq();/*启用全局中断。*/ *将初始化/启动代码放在此处(例如MyStimSistAd())*/ (;) { *将您的应用程序代码放在这里。*/ 如果(UARTrxFLAG==1) { UARTXFLAG=0; CycScBuUARTHEPUT(UARTHI HW,UartRxDat); } 如果(SyStkcNT & gt;=500) { SyStkcNT=0; Cyg- GPIO-ION(Ledia Grimulp P1Y1端口,Ledia GrimeP111nNUM); } } } 以上来自于百度翻译 以下为原文 Hello, I am trying to study the Systick and UART on PSoC 6 BLE Pioneer Kit. Systick generate 1ms interrupt and blink GPIO as 500ms cycle in the main loop. Uart work as 115200 baud rate, use Rx Interrupt to receive a Byte, send out the received data in the main loop. Source code as below.
Would you please help for this case? I can upload my test project if necessary. Thank you! Best regards, Lei #include "project.h" uint8_t UartRxFlag = 0; uint8_t UartRxDat = 0; uint32_t SysTickCnt = 0; void ISR_UART(void) { /* Check for "RX fifo not empty interrupt" */ if((UART_HW->INTR_RX_MASKED & SCB_INTR_RX_MASKED_NOT_EMPTY_Msk ) != 0) { /* Clear UART "RX fifo not empty interrupt" */ UART_HW->INTR_RX = UART_HW->INTR_RX & SCB_INTR_RX_NOT_EMPTY_Msk; UartRxDat = Cy_SCB_UART_Get(UART_HW); UartRxFlag = 1; } } void SysTickIsrHandler(void) { SysTickCnt ++; } int main(void) { uint16_t i = 0; Cy_SysTick_Init(CY_SYSTICK_CLOCK_SOURCE_CLK_IMO,7999); for (i = 0u; i < CY_SYS_SYST_NUM_OF_CALLBACKS; ++i) { if (Cy_SysTick_GetCallback(i) == NULL) { Cy_SysTick_SetCallback(i, SysTickIsrHandler); break; } } cy_en_scb_uart_status_t init_status; /* Start UART operation. */ init_status = Cy_SCB_UART_Init(UART_HW, &UART_config, &UART_context); if(init_status!=CY_SCB_UART_SUCCESS) { } Cy_SCB_UART_Enable(UART_HW); /* Transmit header to the terminal. */ Cy_SCB_UART_PutString(UART_HW, "rn**********************************************************************************rn"); Cy_SCB_UART_PutString(UART_HW, "This is UART example, which uses User ISR to demonstrate UART operationrn"); Cy_SCB_UART_PutString(UART_HW, "If you are able to read this text the terminal connection is configured correctly.rn"); Cy_SCB_UART_PutString(UART_HW, "Start transmitting the characters to see an echo in the terminal.rn"); Cy_SCB_UART_PutString(UART_HW, "rn"); /* Unmasking only the RX fifo not empty interrupt bit */ UART_HW->INTR_RX_MASK = SCB_INTR_RX_MASK_NOT_EMPTY_Msk; /* Interrupt Settings for UART */ Cy_SysInt_Init(&UART_SCB_IRQ_cfg, ISR_UART); /* Enable the interrupt */ NVIC_EnableIRQ(UART_SCB_IRQ_cfg.intrSrc); __enable_irq(); /* Enable global interrupts. */ /* Place your initialization/startup code here (e.g. MyInst_Start()) */ for(;;) { /* Place your application code here. */ if(UartRxFlag == 1) { UartRxFlag = 0; Cy_SCB_UART_Put(UART_HW,UartRxDat); } if(SysTickCnt >= 500) { SysTickCnt = 0; Cy_GPIO_Inv(LED_Green_P1_1_PORT,LED_Green_P1_1_NUM); } } } |
|
相关推荐
6个回答
|
|
请您发布完整的项目或缩短的版本,以显示错误,以便我们都可以查看您的所有设置。为此,使用
创建者-gt;文件& gt;创建工作区束(最小) 并附加生成的文件。 鲍勃 以上来自于百度翻译 以下为原文 Can you please post your complete project or a shortened version that shows the error so that we all can have a look at all of your settings. To do so, use Creator->File->Create Workspace Bundle (minimal) and attach the resulting file. Bob |
|
|
|
ncmza 发表于 2018-11-22 16:28 你好,鲍伯, 谢谢你的回复。 我有完整的项目和测试结果(屏幕截图): PSOC 6 BLE先锋套件测试。 1.UARTHI ISR.Cyrj.SovivyWork.Zip演示项目,SyBube 1ms中断,具有500毫秒LED闪烁。带有中断和回送的UART RX。所有功能运行在CORTEX-M4上。 复位/接通电源后,从PSoC6中键入“Hello World”! PSOC6EVB.CyWrk.CaseViWorkWork.JPG显示了测试结果。 2.UARTHI ISR.Cyrj.Access,Zip演示项目。在CordX-M4上CordX-M0+,Uart的Sytle。 复位/接通电源后,从PSoC6中键入“Hello World”! PSOC6EVB.CyWrk.Access Vo.JPG显示测试结果。似乎有一些字节丢失/错误RX/TX。 请让我知道如果需要任何进一步的信息。 谢谢。 最好的问候, 雷 PSOC6EVB.CyWrk.Access 91.3 K UpTr.Ir.Cyrj.Access 6.4兆字节 PSOC6EVB.CyWrk.CaseViWorkWork.JPG 60.4 K Urthu.ISr.Cyrj.ActuviWork.Zip 6.4兆字节 以上来自于百度翻译 以下为原文 Hello Bob, Thanks for your reply. I have the complete projects and test result(screen shot picture) : Tested on PSoC 6 BLE Pioneer Kit. 1.UART_ISR.cyprj.Archive_Works Well.zip Demo project, Systick 1ms Interrupt, with 500MS LED blink. Uart RX with interrupt and send back. All function run on Cortex-M4. After reset/power on, type"hello world from PSoC6!" PSoC6EVB.cywrk.Archive_Works Well.JPG shows the test result. 2.UART_ISR.cyprj.Archive_Problem.zip Demo project. Systick on Cortex-M0+, Uart on Cortex-M4. After reset/power on, type"hello world from PSoC6!" PSoC6EVB.cywrk.Archive_Problem.JPG shows the test result. Seems some Byte was lost / wrong Rx/Tx. Please kindly let me know if need any further information. Thanks. Best regards, Lei
|
|
|
|
你好, 我在CY8CKIT-062-BLE上测试了你们的两个代码,工作得很好,除了我必须改变UART的PIN配置为TX= P9[ 1 ]和RX= P9〔0〕。当引脚被设置为TX= P5(1)和RX= P5(0),只有UART传输工作,接收不工作,我验证PIN P5(0)的我的工具包,发现它工作时,配置为输入,所以没有问题的PIN被配置为输入,但不知道为什么它不作为RX工作。我知道这听起来很愚蠢,但您可以配置PIX为Tx= P9(1)和RX= P9(0),并看到结果。也没有这样的信息“你好世界从PSoC6演示板!”在你的两个项目中。 以上来自于百度翻译 以下为原文 Hello, I tested your both code on CY8CKIT-062-BLE and worked perfectly fine except that I had to change pin configuration for UART as Tx=P9[1] and Rx=P9[0]. When pins were set as Tx=P5[1] and Rx=P5[0] only UART transmission was working and reception was not working, I verified pin P5[0] of my kit and found it working when configured as input so no problem with pin when configured as input but don't know why it isn't working as RX. I know this sounds foolish but you can configure pins as Tx=P9[1] and Rx=P9[0] and see the result. Also there is no such message "hello world from PSoC6 Demo Board!" in your both projects. |
|
|
|
diaoshayu 发表于 2018-11-22 16:50 你好, 谢谢你的回复。 来自PSoC6演示板的“Hello World”!是我在终端上输入的。因此,如果UART工作正常,字符将回传我的UART。 我使用P5〔0〕和P5〔1〕,因为它们与车载KETPUG连接,所以我可以使用USB进行UART调试。 但是P5〔0〕和P5〔1〕可用作无CalTX-M0+的Syle功能的UART引脚。我不知道这是双核问题还是别的什么。 我会尝试修改UART到P9,然后再试一次。 谢谢您! 最好的问候, 雷 以上来自于百度翻译 以下为原文 Hello, Thanks for your reply. The "hello world from PSoC6 Demo Board!" is what i typed in the terminal. So if the uart works well, the character will loop back my UART. I using P5[0] and P5[1] because they are connected with the on board kitporg so I can use USB for UART debug. But the P5[0] and P5[1] can be used as UART pins without Systick funciton on cortex-M0+. I don't know if this is dual-core issue or something. I will try to modify UART to P9 and try again. Thank you! Best regards, Lei |
|
|
|
aslkmdsa 发表于 2018-11-22 17:04 你好,雷, 请您尝试从这个线程的创建者最新的beta版:PSoC Creator 4.2 beta 2公告!? 我已经在以后的版本中测试了你的项目,它们看起来很好,两个项目都很好。 所以,让我们知道,如果你仍然面临的问题与最新的建设。 当做, Meenakshi Sundaram R 以上来自于百度翻译 以下为原文 Hello Lei, Can you please try the latest beta release of creator from this thread: PSoC Creator 4.2 Beta 2 Announcement! ? I had tested your projects in the later builds and they seem to work fine - both the projects. So try and let us know if you still face the issue with the latest build. Regards, Meenakshi Sundaram R |
|
|
|
斯图尔特233 发表于 2018-11-22 17:22 你好,Meenakshi, 在使用最新PSoC Creator时,不能复制此问题。 谢谢你的帮助。 最好的问候, 雷 以上来自于百度翻译 以下为原文 Hello Meenakshi, This issue cannot be reproduced when using the latest PSoC Creator. Thanks for your kindly help. Best regards, Lei |
|
|
|
只有小组成员才能发言,加入小组>>
756个成员聚集在这个小组
加入小组2125 浏览 1 评论
1867 浏览 1 评论
3683 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1803 浏览 6 评论
1550 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
613浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
456浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
451浏览 2评论
403浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
1089浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-14 11:56 , Processed in 0.944961 second(s), Total 55, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号