微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请问SerialChart下位机如Stm32/单片机发送数据程序怎么写?

请问SerialChart下位机如Stm32/单片机发送数据程序怎么写?

时间:10-02 整理:3721RD 点击:
最近想用SerialChart这款软件将mpu6050的角度和角速度波形显示出来,可是不知道下位机如STM32的输出程序格式怎么写,我按一般的Printf("%d,%d",Angle,Angle_dot)这样的格式写的,可是不成功,其它办法也用过了。网上有Andruino的写法,可我不用这款芯片,希望用过写过的人给我指点一下。




我用得板子是周立功公司LPC1114-301(cortex-m0),没用过stm32,说一下LPC1114的配置过程:1.主程序中初始化串口模块 2.在while中连续发送指定字节的数据
int main(void)
{
    SystemInit();                                      /* 初始化系统         */
    uartInit ();                                       /* 串口初始化         */
                while(1)
                {
                                uartSendStr(GucRcvBuf, GulNum);     /* 向串口发送数据     */       
                                myDelay(1);                                    /* 延时 */
                }
}
void uartInit (void)
{
    uint16_t usFdiv;
    LPC_SYSCON->SYSAHBCLKCTRL |= (1 << 16);              /* 使能IOCON时钟   */
    LPC_IOCON->PIO1_6 |= 0x01;                   /* 将P1.6 1.7配置为RXD和TXD    */
    LPC_IOCON->PIO1_7 |= 0x01;
    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<12);      /* 打开UART功能部件时钟 */
    LPC_SYSCON->UARTCLKdiv       = 0x01;            /* UART时钟分频         */
    LPC_UART->LCR  = 0x83;                                  /* 允许设置波特率       */
    usFdiv = (SystemFrequency/LPC_SYSCON->UARTCLKdiv/16)/UART_BPS;      
                                                                  /* 设置波特率115200    */
    LPC_UART->DLM  = usFdiv / 256;
    LPC_UART->DLL  = usFdiv % 256;
    LPC_UART->LCR  = 0x03;                          /* 锁定波特率           */
    LPC_UART->FCR  = 0x87;                   /* 使能FIFO,设置8个字节触发点 */
    NVIC_EnableIRQ(UART_IRQn);               /* 使能UART中断,并配置优先级  */
    NVIC_SetPriority(UART_IRQn, 1);
}
void uartSendStr (uint8_t const *pucStr, uint32_t ulNum)
{
    uint32_t i;
    for (i = 0; i < ulNum; i++){                      /* 发送指定个字节数据  */
        uartSendByte (*pucStr++);
    }
}
void uartSendByte (uint8_t ucDat)
{
    LPC_UART->THR = ucDat;                             /*  写入数据         */
    while ((LPC_UART->LSR & 0x40) == 0);          /*  等待数据发送完毕 */
}
所以说,你应该是先找一个stm32串行通信的成功例程,然后自己在那个基础上添加东西,OK!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top