[国产单片机] 【东软载波ESF0654 PDS开发板活动】测试串口0

[复制链接]
1015|0
 楼主| 一路向北lm 发表于 2019-12-16 20:45 | 显示全部楼层 |阅读模式
由于ES32F065板卡没有板载串口转USB芯片,需要自己外接一个USB串口模块进行测试。
串口初始化函数:
  1. <font size="4"><b>//串口GPIO初始化
  2. static void uart_232_pin_init(void)
  3. {
  4.     gpio_init_t x;
  5.     /* Initialize tx pin */
  6.     x.mode = GPIO_MODE_OUTPUT;
  7.     x.odos = GPIO_PUSH_PULL;
  8.     x.pupd = GPIO_PUSH_UP;
  9.     x.odrv = GPIO_OUT_DRIVE_NORMAL;
  10.     x.flt  = GPIO_FILTER_DISABLE;
  11.     x.type = GPIO_TYPE_TTL;
  12.     x.func = GPIO_FUNC_3;
  13.     ald_gpio_init(GPIOB, GPIO_PIN_10, &x);

  14.     /* Initialize rx pin */
  15.     x.mode = GPIO_MODE_INPUT;
  16.     x.odos = GPIO_PUSH_PULL;
  17.     x.pupd = GPIO_PUSH_UP;
  18.     x.odrv = GPIO_OUT_DRIVE_NORMAL;
  19.     x.flt  = GPIO_FILTER_DISABLE;
  20.     x.type = GPIO_TYPE_TTL;
  21.     x.func = GPIO_FUNC_3;
  22.     ald_gpio_init(GPIOB, GPIO_PIN_11, &x);
  23. }
  24. //串口初始化
  25. void uart_232_module_init(uint32_t baud)
  26. {
  27.     uart_232_pin_init();

  28.     memset(&h_uart, 0x0, sizeof(h_uart));

  29.     /* Initialize uart */
  30.     h_uart.perh             = UART0;
  31.     h_uart.init.baud        = baud;
  32.     h_uart.init.word_length = UART_WORD_LENGTH_8B;
  33.     h_uart.init.stop_bits   = UART_STOP_BITS_1;
  34.     h_uart.init.parity      = UART_PARITY_NONE;
  35.     h_uart.init.mode        = UART_MODE_UART;
  36.     h_uart.init.fctl        = UART_HW_FLOW_CTL_DISABLE;
  37.     ald_uart_init(&h_uart);
  38. }
  39. </b></font>
串口接收数据函数:
  1. <font size="4"><b>uart_232_status_t bsp_uart_232_recv(uint8_t *buf, uint16_t size)
  2. {
  3.     if (buf == NULL)
  4.         return UART_232_ERROR;
  5.     if (ald_uart_recv(&h_uart, buf, size, 500) != OK)
  6.         return UART_232_ERROR;
  7.     return UART_232_OK;
  8. }
  9. </b></font>
串口写数据函数:
  1. <font size="4"><b>uart_232_status_t bsp_uart_232_send(uint8_t *buf, uint16_t size)
  2. {
  3.     if (buf == NULL)
  4.         return UART_232_ERROR;
  5.     if (ald_uart_send(&h_uart, buf, size, 500) != OK)
  6.         return UART_232_ERROR;
  7.     return UART_232_OK;
  8. }
  9. </b></font>
添加修改main.cmian.h,实现对串口的读写操作。
  1. <font size="4"><b>#include "main.h"
  2. unsigned char Sendbuf[16] = "es32f0654 is ok!";
  3. int main()
  4. {
  5.         led_module_init();   //LED初始化
  6.         bsp_key_init();      //按键初始化
  7.         uart_232_module_init(115200);
  8.   bsp_uart_232_send(Sendbuf,16);       
  9.         while (1)
  10.         {          
  11.         }
  12. }

  13. #ifndef   __MAIN_H__
  14. #define   __MAIN_H__
  15. #include "bsp_led.h"
  16. #include "bsp_key.h"
  17. #include "bsp_uart_232.h"
  18. #endif
  19. </b></font>
硬件连接后,打印数据如下:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部