嗨,对话框中,
我在hrp_sensor工程中,添加第二个串口。(系统默认使用UART2为打印输出,故我用UART1为自定义串口)。
一个奇怪的问题是,在HRS_TIMER_NOTIF触发的任务中,添加UART1代码时,总会系统复位(重置)
//------------------------------------------
if (notif & HRS_TIMER_NOTIF){//在这里测试UART,每1秒触发一次
uart1dev = ad_uart_open (SERIAL1);
如果(uart1dev) {
http_len = HTTP_PostPkt (uart1_buf API_KEY DEV_ID,“温度”,“24.5”);/ /这个函数在uart1_buf中填入一组字符串,空间1024,实际使用了大概150字节。
/ / printf (" % s "换行,uart1_buf);/ / <——这个printf函数工作正常
ad_uart_write (uart1dev uart1_buf http_len);/ / ! !<——t这个函数一执行,就会复位复位
其他}{
printf("UART1设备打开失败"换行);
}
ad_uart_close (uart1dev);
.........
//-------------------------------------------------
没弄明白这两个函数有啥区别?为什么同样长度,同样波特率的不同串口输出,一个会引起复位呢?
有什么解决办法?或者怎样诊断这种重置故障呢?
有关定义及初始化代码如下:
/---------------------------------------------
#如果dg_configUART_ADAPTER
hw_uart_bus (uart1, serial1, hw_uart_baudrate_115200, hw_uart_databits_8, hw_uart_parity_none, hw_uart_bus, serial1, hw_uart_baudrate_115200, hw_uart_databits_8, hw_uart_parity_none,
hw_uart_stopbits_1,0,0, hw_dma_channel_1, hw_dma_channel_0,0,0)
hw_uart_bus (uart2, serial2, hw_uart_baudrate_115200, hw_uart_databits_8, hw_uart_parity_none, hw_uart_bus, serial2, hw_uart_baudrate_115200, hw_uart_databits_8, hw_uart_parity_none,
hw_uart_stopbits_1,0,1, hw_dma_channel_3, hw_dma_channel_2, 0,0)
#endif /* dg_configUART_ADAPTER */
//--------------------------------------------
我的UART使用P10和好。
//-------------------------------
/ / P10 = TX1好= RX1
hw_gpio_configure_pin (HW_GPIO_PORT_1 HW_GPIO_PIN_4 HW_GPIO_MODE_OUTPUT,
HW_GPIO_FUNC_GPIO, 1);
hw_gpio_set_pin_function (HW_GPIO_PORT_1 HW_GPIO_PIN_0 HW_GPIO_MODE_OUTPUT,
HW_GPIO_FUNC_UART_TX);
hw_gpio_set_pin_function (HW_GPIO_PORT_1 HW_GPIO_PIN_4 HW_GPIO_MODE_OUTPUT,
HW_GPIO_FUNC_UART_RX);
//---------------------------------
谢谢

试试看减少发送内容的长度或者在这个任务意外其他执行写是不是也会触发重置
你好先生,
你能告诉我你的联系方式吗?电话号码?
嗨,Jelphi,
我的电子邮件是liaojie@konka.com
谢谢