Part Number:CC2642ROther Parts Discussed in Thread:SYSCONFIG
串口配置界面
程序代码
int uarttree = 0; static void writeCallback(UART_Handle handle, void *rxBuf, size_t size) {// Do nothinguarttree ++; } static void readCallback(UART_Handle handle, void *rxBuf, size_t size) {uarttree ++; } void fp_init(void) {UART_Handle handle;UART_Params params;// GPIO_setConfig(CONFIG_GPIO_FP_TX,GPIO_CFG_INT_ENABLE);// GPIO_setConfig(CONFIG_GPIO_FP_RX,GPIO_CFG_INT_ENABLE);/* 相关串口初始化 */params.baudRate= 115200;// params.writeMode= UART_MODE_CALLBACK;// params.writeDataMode = UART_DATA_BINARY;// params.writeCallback = writeCallback;params.readMode= UART_MODE_CALLBACK;// params.readDataMode = UART_DATA_BINARY;params.readCallback = readCallback;UART_init();UART_Params_init(¶ms);handle = UART_open(CONFIG_FP_UART, ¶ms); UART_write(handle, "hello", 5); // UART_read(handle, rxBuf, 16); 初始化 {...GPIO_init();//From thisfp_init();... }
Galaxy Yue:
首先,在你的sysconfig配置中,前面设置的interrupt priority是3,但是最后在gpio 写的是4,一般是一致的
其次,UART_Params_init(¶ms);
放在第20行-第21行之间试试(放在参数之前)
还有,你的sysconfig中RX 的配置中,是while not use时,你设置的是pull up,
你的RX在接收数据时应该是use的时候吧?
你的串口收发消息正常吗?这个用来排除连线问题
,
viys:
使用
“`
UART_init(); UART_Params_init(¶ms);
“`
后RX就是 use状态么?
串口相关连线用电表打过,是正常的,串口工具也正常.
优先级和“` UART_init();UART_Params_init(¶ms); “`放在了参数之前依旧不行
,
viys:
您那里有这样的问题么,而且串口接收中断我希望使用一些中断的state,例如空闲中断,正常的接收中断等
,
Galaxy Yue:
初始化是初始化UART模块和UART参数结构体,不对GPIO引脚进行配置或使用
使用GPIO_setConfig设置为UART模式,
https://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/tirtos/2_20_00_06/exports/tirtos_full_2_20_00_06/products/tidrivers_full_2_20_00_08/docs/doxygen/html/_g_p_i_o_8h.html#ae13b9ae70c5d2993d1ac932a91c1f1fa
,
viys:
抱歉,我并未找到GPIO相关的UART的模式
,
Galaxy Yue:
1.UART RX 引脚在不使用时配置为下拉输入引脚
2.
uart_init(void)
初始化驱动程序。该函数只能调用一次,且必须在调用其他驱动程序 API 之前调用3.麻烦你按照这个示例跑一下,看看操作台的回显数值
https://dev.ti.com/tirex/explore/node?node=A__AMtaeblwFe6YHkWqopWzeQ__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST
目标回显在串行会话中键入的任何字符。
,
Galaxy Yue:
言重了 我再确认一下 这个起用方式
,
viys:
低电平问题已经解决了,程序中有一块对该引脚进行了去初始化.
目前依然存在的问题是串口中断,串口工具给RX引脚发送消息,串口接收回调函数并不会被调用,当且仅当调用uart_read()时才可进入.
我目前的情况类似于这篇“`[参考译文] RTOS/CC2642R:UART 回调模式不工作 – Bluetooth®︎(参考译文帖)(Read Only) – Bluetooth®︎(参考译文帖) – E2E 设计支持 (ti.com)“`
我希望当有数据来临时可以通过外部中断进入接收回调函数,arm架构的芯片都是有相关中断的,但我并未在ti相关资料中找到.
,
Galaxy Yue:
在SDK中的例程有GPIO interrupt 你可以参考一下
这个是别人的使用方式
https://blog.csdn.net/hero_8255/article/details/124097328
这个是在SDK中的文档
https://dev.ti.com/tirex/explore/node?node=A__AOHV4naYDS2cRtk6sG5VHA__com.ti.SIMPLELINK_CC13XX_CC26XX_SDK__BSEc4rl__LATEST
这个是academic
https://dev.ti.com/tirex/explore/node?node=A__AKDtvdIAjKxrGD6Mk2e2bg__com.ti.SIMPLELINK_ACADEMY_CC2640R2SDK__7unKOT8__LATEST
顺序 321