完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 一只耳朵怪 于 2018-6-4 10:04 编辑
在z_stack2007 中默认的是DMA模式的,且串口默认为0串口,我想通过预编译的方式来实现通过串口1的中断模式进行数据的交互。预想这样在休眠模式下通过外部中断来唤醒终端休眠。请问这样可以做到么?如果能做到请问怎么做呢?需要预编译什么呢?求各位大神帮帮忙 |
|
相关推荐
25个回答
|
|
求大家帮帮忙啊。。。。
|
|
|
|
你好,
TI的协议栈版本没有Z-Stack 2007之类的,只有Z-Stack 2.5.1a/Z-Stack Home 1.2.0/... #ifndef HAL_UART_ISR #if HAL_UART_DMA // Default preference for DMA over ISR. #define HAL_UART_ISR 0 #elif (defined ZAPP_P2) || (defined ZTOOL_P2) #define HAL_UART_ISR 2 #else #define HAL_UART_ISR 1 #endif #endif CC2530在PM2模式支持Timer event和GPIO 中断唤醒,不支持串口唤醒,如果你想实现串口唤醒的话,在sleep前,把RX引脚,改成GPIO的配置就可以了。 |
|
|
|
wenlonghbo 发表于 2018-6-1 07:08 谢谢VV的帮忙,我的是Z-Stack 2.5.1a/,那请问下怎么在sleep前,把RX引脚,改成GPIO的配置呢?能否帮下忙,谢谢 |
|
|
|
wenlonghbo 发表于 2018-6-1 07:08 还有如果休眠模式是PM3呢 串口中断能唤醒休眠么?怎么让终端进入模式PM3呢? |
|
|
|
当你把zgPollRate=0,当系统的timeout为0的时候,就会进入PM3 /* HAL_SLEEP_PM2 is entered only if the timeout is zero and * the device is a stimulated device. */ halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER; /* DEEP sleep can only be entered when zgPollRate == 0. * This is to eliminate any possibility of entering PM3 between * two network timers. */ |
|
|
|
wenlonghbo 发表于 2018-6-1 07:43 谢谢VV大神,还有个问题我用的是Z-Stack 2.5.1a/,那请问下怎么在sleep前,把RX引脚,改成GPIO的配置呢?能否帮下忙,谢谢 |
|
|
|
wenlonghbo 发表于 2018-6-1 07:43 vv大神帮下忙啊。怎么配置成pgio呢? |
|
|
|
wenlonghbo 发表于 2018-6-1 07:08 请求大神帮帮忙啊。。。。。。。怎么把RX引脚配置成GPIO啊 这涉及到硬件么? |
|
|
|
就是把UART串口的RX脚配置为GPIO,在用户手册上有管脚操作的内容: http://www.ti.com.cn/cn/lit/ug/swru191f/swru191f.pdf 80页 |
|
|
|
bctwerwer 发表于 2018-6-1 08:39 好的 我试试 谢谢您的帮忙 |
|
|
|
wenlonghbo 发表于 2018-6-1 07:08 请问VV,把RX引脚,改成GPIO,在通过读取串口数据时候是不是要把把RX引脚改为回来啊?如果要改回来是不是在醒来的时候就改呢? |
|
|
|
唤醒以后改的! |
|
|
|
谢谢VV的回答,我用串口0能中断唤醒了 ,但是串口则不行,请帮我看看是不是配置出现了问题, 我在协议栈中修改了串口0 你能中断唤醒休眠,并且能从串口0 读出正确的数据,但是串口1就不行,我串口0的修改如下:在休眠前加入 P0SEL &= ~0X20; //外P0_5为通用接口模式 GPIO P0DIR &= ~0X20; //P0_5为输入 P0IEN |= 0X20; //开P0_5的IO中断使能 IEN1 |= 0X20; //开P0的中断 休眠后理解恢复到串口的原始状态, P0SEL = 0x3C; GPIO P0DIR =0X01; P0IEN = 0X00; IEN1 = 0X04; hal_board_cfg.h头文件中,修改如下: 注掉原有的 #define HAL_UART_ISR 1//重新定义为ISR模式 这样就能从休眠中唤醒, 我串口1修改如下:在不休眠的时候,通过修改 hal_board_cfg.h头文件中, #define HAL_UART_ISR 2//重新定义为ISR模式 这样就能正常读出数据, 加入休眠,我修改如下: 在休眠前加入 P1SEL &= ~0X80; //外P1_7为通用接口模式 GPIO P1DIR &= ~0X80; //P1_7为输入 P1IEN |= 0X80; //开P1_7的IO中断使能 IEN2 |= 0X80; //开P1的中断 休眠后醒来后立即回复原始状态: P1SEL ^= 0x80; GPIO P1DIR ^= 0X17; P1IEN &= ~ 0X00; IEN2 &= ~0X09; 但是这样不能从休眠中唤醒,更不要提读出数据了,请各位大神帮我看看是不是串口1的配置出现了问题,如果配置错误请问下周末配置,我对硬件不熟悉,谢谢 |
|
|
|
国电赛邵 发表于 2018-6-1 09:44 各位工程师帮帮忙吧! |
|
|
|
国电赛邵 发表于 2018-6-1 09:44 你好, 串口用到的引脚,程序里面有没有其他地方有复用的。 你再协议栈上,串口1的功能有没有调通,先不管休眠的东西。 |
|
|
|
,谢谢VV大神的帮忙,我串口1能在不休眠的时候调通的 能正常收发数据的,就是加了休眠后,就不能正常使用了,请问下是不是我一下所加的配置不对呢 在休眠前加入 P1SEL &= ~0X80; //外P1_7为通用接口模式 GPIO P1DIR &= ~0X80; //P1_7为输入 P1IEN |= 0X80; //开P1_7的IO中断使能 IEN2 |= 0X80; //开P1的中断 休眠后醒来后立即回复原始状态: P1SEL ^= 0x80; GPIO P1DIR ^= 0X17; P1IEN &= ~ 0X00; IEN2 &= ~0X09; |
|
|
|
国电赛邵 发表于 2018-6-1 10:19 醒来以后为什么没有跟串口相关的配置! |
|
|
|
谢谢vv,我这就没有唤醒,这样的配置能不能唤醒呢? P1SEL &= ~0X80; //外P0_5为通用接口模式 GPIO P1DIR &= ~0X80; //P0_5为输入 P1IEN |= 0X80; //开P0_5的IO中断使能 IEN2 |= 0X80; //开P0的中 而且我在唤醒后配置: P1SEL ^= 0x80; //外P0_5为通用接口模式 GPIO P1DIR ^= 0X17; //P0_5为输入 P1IEN &= ~ 0X00; //开P0_5的IO中断使能 IEN2 &= ~0X09; 配置成串口对么, |
|
|
|
国电赛邵 发表于 2018-6-1 09:44 你好,我配置完后串口0唤醒后数据会带有乱码,可能因为前面的被当做外部中断来触发,导致收到的数据不完整,你说你能读出正确的数据,是怎么做到的,还有你是在哪边恢复串口初始状态的,这个最近弄很久了,老是弄不好,看到的话希望能回复我下,谢谢 |
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
669 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
597 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1048 浏览 1 评论
731 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
520 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
157浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
119浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
123浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
121浏览 12评论
TPA6304-Q1: TPA6304 两片公用一组I2C的话,其中一片配置不成功怎么办
163浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:50 , Processed in 1.689456 second(s), Total 117, Slave 98 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号