<output id="hxt7n"><dfn id="hxt7n"><form id="hxt7n"></form></dfn></output>

<track id="hxt7n"><progress id="hxt7n"><th id="hxt7n"></th></progress></track>
<address id="hxt7n"><big id="hxt7n"></big></address>

      <sub id="hxt7n"></sub>

      搜索
      打印

      [单片机芯片] CH579EVT评测+串口1测试

      [复制链接]
      422|5
      跳转到指定楼层
      楼主
      1. H579EVT板卡 扩展板上的USB-CH340C串口的控制引脚被引出到了PA8PA9端口,原理图如下:

      使用特权

      评论回复
      沙发
       楼主 | 2020-1-20 14:41 | 只看该作者
      2.APP分组中新建bsp_uart.cbsp_uart.h文件,该文件实现了对对串口1数据的发送与接收操作。
      bsp_uart.c代码如下:
      1. #include "bsp_uart.h"

      2. UINT8 RxBuff[100];
      3. UINT8 trigB;
      4. //串口1初始化函数
      5. void uart_module_init(void)
      6. {  
      7.     GPIOA_SetBits(GPIO_Pin_9);
      8.     GPIOA_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);                       
      9.     GPIOA_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);               
      10. UART1_DefInit();

      11.         UART1_BaudRateCfg(115200);
      12.         R8_UART1_FCR = (2<<6) | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR |  RB_FCR_FIFO_EN;               
      13.     R8_UART1_LCR = RB_LCR_WORD_SZ;      
      14.     R8_UART1_IER = RB_IER_TXD_EN;
      15.     R8_UART1_DIV = 1;  
      16.         UART1_ByteTrigCfg( UART_7BYTE_TRIG );
      17.     trigB = 7;
      18.     UART1_INTCfg( ENABLE, RB_IER_RECV_RDY|RB_IER_LINE_STAT );
      19.     NVIC_EnableIRQ( UART1_IRQn );
      20.        
      21. }
      22. //串口1接收中断函数
      23. void UART1_IRQHandler(void)
      24. {
      25.     UINT8 i;
      26.     switch( UART1_GetITFlag() )
      27.     {
      28.         case UART_II_LINE_STAT:      
      29.             UART1_GetLinSTA();
      30.             break;

      31.         case UART_II_RECV_RDY:         
      32.             for(i=0; i!=trigB; i++)
      33.             {
      34.                 RxBuff[i] = UART1_RecvByte();
      35.                 UART1_SendByte(RxBuff[i]);
      36.             }
      37.             break;
      38.         
      39.         case UART_II_RECV_TOUT:         
      40.             i = UART1_RecvString(RxBuff);
      41.             UART1_SendString( RxBuff, i );
      42.             break;
      43.         
      44.         case UART_II_THR_EMPTY:      
      45.             break;
      46.         
      47.         case UART_II_MODEM_CHG:        
      48.             break;
      49.         
      50.         default:
      51.             break;
      52.     }
      53. }
      复制代码


      使用特权

      评论回复
      板凳
       楼主 | 2020-1-20 14:42 | 只看该作者
      bsp_uart.h代码如下
      1. #ifndef __BSP_UART_H__
      2. #define __BSP_UART_H__

      3. #include "CH57x_common.h"
      4. void uart_module_init(void);

      5. #endif
      复制代码


      使用特权

      评论回复
      地板
       楼主 | 2020-1-20 14:42 | 只看该作者
      main.c代码如下:

      1. #include "CH57x_common.h"
      2. #include "bsp_rgb.h"
      3. #include "bsp_uart.h"

      4. UINT8 TxDate[]="This is CH579 Uart1 Test Demo!\r\n";
      5. int main()
      6. {   
      7.           SystemInit();
      8.     rgb_module_init();
      9.           uart_module_init();
      10.           UART1_SendString(TxDate, sizeof(TxDate)-1);
      11.     while(1)
      12.                 {
      13.                   RGB_R_ON;
      14.                         mDelaymS(500);
      15.                         RGB_R_OFF;
      16.                         mDelaymS(500);               
      17.                 }                       
      18. }
      复制代码


      使用特权

      评论回复
      5
       楼主 | 2020-1-20 14:43 | 只看该作者
      4.下载到开发板,重启可看到串口助手打印”This is CH579 Uart1 Test Demo!”,通过串口助手发送AT字符,在串口1中断可以正确接收。

      使用特权

      评论回复
      6
      | 2020-2-22 20:05 | 只看该作者
      哎 怎么说那~~

      使用特权

      评论回复
      扫描二维码,随时随地手机跟帖
      您需要登录后才可以回帖 登录 | 注册

      本版积分规则

      我要发帖 投诉建议 创建版块 申请版主

      快速回复

      您需要登录后才可以回帖
      登录 | 注册
      高级模式

      论坛热帖

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