diff --git a/applications/app/TW106_UART/README.md b/applications/app/TW106_UART/README.md old mode 100644 new mode 100755 index cf9b277bb00c56b8fc13709e710521b0e1451f49..fd1be268bc8dda21a0873d66a23cef4873c4e47f --- a/applications/app/TW106_UART/README.md +++ b/applications/app/TW106_UART/README.md @@ -49,14 +49,14 @@ flowCtrl: 具体流控设置选项 ## 例程原理简介 - 本例程通过将uart1的TX引脚连接RX引脚,实现uart的自发自收功能。 + 本例程通过将uart2的TX引脚连接RX引脚,实现uart的自发自收功能。 串口格式默认为 波特率=115200,8bit数据位,1bit停止位,无校验位。 ## 注意事项 - 请先烧录固件完成,然后再用杜邦线短接GPIO5(UATR1_RX)引脚和GPIO6(UART1_TX)引脚! - 若先短接了UART1_TX和UART1_RX引脚,然后再进行固件烧录,可能会出现固件检测失败的现象! - 使用一根杜邦线短接核心板GPIO5和GPIO6,参考拓维Niobe_WiFi_IoT 原理图.pdf(https://gitee.com/talkweb_oh/niobe/tree/master/applications/docs/board),中Core CON中GPIO口的分布,则GPIO5在核心板左侧下方的第6跟引脚,GPIO6在核心板右侧下方的第6跟引脚。 -![image-20211116101112](figure/image-20211116101112.png) + 请先烧录固件完成,然后再用杜邦线短接GPIO12(UATR2_RX)引脚和GPIO11(UART2_TX)引脚! + 若先短接了UART2_TX和UART2_RX引脚,然后再进行固件烧录,可能会出现固件检测失败的现象! + 使用一根杜邦线短接核心板GPIO12和GPIO11,参考拓维Niobe_WiFi_IoT 原理图.pdf(https://gitee.com/talkweb_oh/niobe/tree/master/applications/docs/board),中Core CON中GPIO口的分布,则GPIO11在核心板左侧第5跟引脚,GPIO12在核心板右侧下方的第4跟引脚。 +![image_20211222165512](figure/image_20211222165512.png) ### 测试结果 ``` sdk ver:Hi3861V100R001C00SPC025 2020-09-03 18:10:00 diff --git a/applications/app/TW106_UART/figure/image_20211222165512.png b/applications/app/TW106_UART/figure/image_20211222165512.png new file mode 100755 index 0000000000000000000000000000000000000000..f408a58a43ddcc8ce4b6e861379ea17b22f7727d Binary files /dev/null and b/applications/app/TW106_UART/figure/image_20211222165512.png differ diff --git a/applications/app/TW106_UART/uart_example.c b/applications/app/TW106_UART/uart_example.c old mode 100644 new mode 100755 index 593e31430c7803fc3da68f14f60339c5bada5b44..3c804364b8beffa5af1b826bdc8f445ac23a8ffe --- a/applications/app/TW106_UART/uart_example.c +++ b/applications/app/TW106_UART/uart_example.c @@ -21,6 +21,8 @@ #include "iot_uart.h" #include "iot_errno.h" +#include "iot_gpio.h" + #define UART_TASK_STACK_SIZE 4096 #define UART_TASK_PRIO 25 @@ -42,8 +44,18 @@ static void uartTask(void) int ret; int recvLen; + //初始化GPIO + IoTGpioInit(IOT_GPIO_IO_GPIO_11); + IoTGpioInit(IOT_GPIO_IO_GPIO_12); + + IoTIoSetPull(IOT_GPIO_IO_GPIO_11, IOT_IO_PULL_UP); + IoTIoSetPull(IOT_GPIO_IO_GPIO_12, IOT_IO_PULL_UP); + + IoTIoSetFunc(IOT_GPIO_IO_GPIO_11, IOT_IO_FUNC_GPIO_11_UART2_TXD); + IoTIoSetFunc(IOT_GPIO_IO_GPIO_12, IOT_IO_FUNC_GPIO_12_UART2_RXD); + //初始化uart - ret = IoTUartInit(HI_UART_IDX_1, &uart_attr); + ret = IoTUartInit(HI_UART_IDX_2, &uart_attr); if (ret != IOT_SUCCESS) { printf("Failed to init uart! Err code = %d\r\n", ret); @@ -57,10 +69,10 @@ static void uartTask(void) memset(uart_recv_data, 0, sizeof(uart_recv_data)); //UART发送数据 - IoTUartWrite(HI_UART_IDX_1, uart_send_pdata, strlen(uart_send_pdata)); + IoTUartWrite(HI_UART_IDX_2, uart_send_pdata, strlen(uart_send_pdata)); //UART接收数据 - recvLen = IoTUartRead(HI_UART_IDX_1, uart_recv_data, UART_RECV_BUF_SZIE); + recvLen = IoTUartRead(HI_UART_IDX_2, uart_recv_data, UART_RECV_BUF_SZIE); if (recvLen > 0) { printf("uart recv len = %d\r\n", recvLen); diff --git "a/applications/docs/board/\346\213\223\347\273\264niobe wifi iot Board v1.1 \345\216\237\347\220\206\345\233\276.pdf" "b/applications/docs/board/\346\213\223\347\273\264niobe wifi iot Board v1.1 \345\216\237\347\220\206\345\233\276.pdf" new file mode 100755 index 0000000000000000000000000000000000000000..6ff5158c40a4b630958902a81693cddf0a0a2788 Binary files /dev/null and "b/applications/docs/board/\346\213\223\347\273\264niobe wifi iot Board v1.1 \345\216\237\347\220\206\345\233\276.pdf" differ