请问SerialChart下位机如Stm32/单片机发送数据程序怎么写?
我用得板子是周立功公司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!