聪聪哥哥 发表于 2025-8-29 21:03

【APM32F402R Micro-EVB】12:与工业串口屏的通讯测试

由于使用串口输出到PC端,查看数据有些不太直观,想查看单片机的工作状态,或者是串口收到的数据时候,我这边经常使用IIC的OLED屏幕,或者是串口的工业屏幕。这样查看数据还是很方便的。
在之前的帖子里面实现的串口的DMA发送与串口空闲中断与DMA接收的方式,今天和大家分享一下,串口的中断方式驱动显示屏。
串口2的初始化部分:
//========================================================================
// 函数: void USART2_INIT(int bound)
// 描述: 串口1初始化函数
// 参数: 波特率.
// 返回: None.
// 版本: V1.0, 2025-08-08
//========================================================================
void USART2_INIT(int bound)
{
        USART_Config_T USART_ConfigStruct;
RCM_EnableAHBPeriphClock(RCM_AHB_PERIPH_DMA1);

        USART_ConfigStruct.baudRate = bound;
        USART_ConfigStruct.hardwareFlow = USART_HARDWARE_FLOW_NONE;
        USART_ConfigStruct.mode = USART_MODE_TX_RX;
        USART_ConfigStruct.parity = USART_PARITY_NONE;
        USART_ConfigStruct.stopBits = USART_STOP_BIT_1;
        USART_ConfigStruct.wordLength = USART_WORD_LEN_8B;
        BOARD_COM_Config(COM2, &USART_ConfigStruct);
        USART_EnableInterrupt(USART2, USART_INT_RXBNE);//开启串口接收中断
        USART_EnableInterrupt(USART2, USART_INT_TXBE);//开启空闲中断       
}串口中断的发送方式:
/**
* @brief   bool SendDataToUSART1(int length)
*
* @param   串口中断发送方式
*
* @retvalNone
*/
char SendDataToUSART2(int length)
{   
        uint8_t i;

        for(i = 0; i < length; i++)
        {
                        while(USART_ReadStatusFlag(USART2, USART_FLAG_TXBE) == RESET);
                        USART_TxData(USART2, SendBuffer2);
        }
return 1;
}
切换界面的底层驱动函数:
void ChangePage(unsigned short int no)
{
       SendBuffer2 = 0x5A ;
       SendBuffer2 = 0xA5 ;       
       SendBuffer2 = 0x07 ;
       SendBuffer2 = 0x82 ;       
       SendBuffer2 = 0x00 ;
       SendBuffer2 = 0x84 ;       
       SendBuffer2 = 0x5A ;
       SendBuffer2 = 0x01 ;       
       SendBuffer2 = 0x00 ;
       SendBuffer2 = no ;          
       SendDataToUSART2(10);
}在任务调度中添加,切换屏幕的函数如下所示:
char testdata ;
void task_500ms(void)
{
        BOARD_LED_Toggle(LED2);
testdata++;
if(testdata>=10)testdata = 0 ;
ChangePage(testdata);
}效果图如下所示:

DawnFervor 发表于 2025-8-30 13:43

干了个啥啊?
没有看出来啊
页: [1]
查看完整版本: 【APM32F402R Micro-EVB】12:与工业串口屏的通讯测试