日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32驅(qū)動串口屏,STM32F103C8T6串口發(fā)送指令控制HMI串口屏

jf_88434166 ? 來源:jf_88434166 ? 作者:jf_88434166 ? 2026-02-10 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

串口屏

串口屏是一個集成了單片機的屏幕模塊,采用的是TTL串口協(xié)議,可以直接通過對應指令控制屏幕,
本文采用的串口屏是陶晶馳T0系列的基本型,目的是通過單片機的串口來控制串口屏。
1-主圖.png

基礎指令集

2-指令集.png

上面僅是一部分常用的基礎指令,更多更仔細的指令或者函數(shù)可以訪問陶晶馳資料官網(wǎng)。

硬件和接線

硬件需要一塊STM32F103C8T6的開發(fā)板,杜邦線諾干,2.4寸串口屏一塊

接線

串口屏STM32
+5V5V
TXPA10
RXPA9
GNDGND

實驗前準備

準備前需要下載出廠標準樣例,一般出廠自帶的,不需要下載,需要下載的可以參考以前的文章:[51單片機驅(qū)動HMI串口屏,串口屏的下載方式]

STM32程序

串口程序

串口配置

void uart_init(u32 bound){
    //GPIO端口設置
    GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	 
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);	//使能USART1,GPIOA時鐘
 	USART_DeInit(USART1);  //復位串口1
	 //USART1_TX   PA.9
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //PA.9
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;	//復用推挽輸出
    GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化PA9
   
    //USART1_RX	  PA.10
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
    GPIO_Init(GPIOA, &GPIO_InitStructure);  //初始化PA10

   //Usart1 NVIC 配置

    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//搶占優(yōu)先級3
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;		//子優(yōu)先級3
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//IRQ通道使能
	NVIC_Init(&NVIC_InitStructure);	//根據(jù)指定的參數(shù)初始化VIC寄存器
  
   //USART 初始化設置

	USART_InitStructure.USART_BaudRate = bound;//一般設置為9600;
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長為8位數(shù)據(jù)格式
	USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個停止位
	USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗位
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無硬件數(shù)據(jù)流控制
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;	//收發(fā)模式

    USART_Init(USART1, &USART_InitStructure); //初始化串口
    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開啟中斷
    USART_Cmd(USART1, ENABLE);                    //使能串口 

}

中斷服務程序

void USART1_IRQHandler(void)                	//串口1中斷服務程序
	{
	u8 Res;
#ifdef OS_TICKS_PER_SEC	 	//如果時鐘節(jié)拍數(shù)定義了,說明要使用ucosII了.
	OSIntEnter();    
#endif
	if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中斷(接收到的數(shù)據(jù)必須是0x0d 0x0a結(jié)尾)
		{
		Res =USART_ReceiveData(USART1);//(USART1- >DR);	//讀取接收到的數(shù)據(jù)	
		if((USART_RX_STA&0x8000)==0)//接收未完成
			{
			if(USART_RX_STA&0x4000)//接收到了0x0d
				{
				if(Res!=0x0a)USART_RX_STA=0;//接收錯誤,重新開始
				else USART_RX_STA|=0x8000;	//接收完成了 
				}
			else //還沒收到0X0D
				{	
				if(Res==0x0d)USART_RX_STA|=0x4000;
				else
					{
					USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;
					USART_RX_STA++;
					if(USART_RX_STA >(USART_REC_LEN-1))USART_RX_STA=0;//接收數(shù)據(jù)錯誤,重新開始接收	  
					}		 
				}  	
			}  
				 
     }

主函數(shù)

主函數(shù)

int main(void)
 {	   	 
	delay_init();	    	 //延時函數(shù)初始化	  
	NVIC_Configuration(); 	 //設置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應優(yōu)先級
	uart_init(9600);	  	 //串口初始化為9600
	HMISendstart();          //為確保串口HMI正常通信
	{ 
		HMISends("cls RED");  //發(fā)送串口指令
		HMISendb(0xff);		  //發(fā)送結(jié)束符 0XFF 0XFF 0XFF
		delay_ms(1000);
    	HMISends("cls GREEN");
		HMISendb(0xff);
    	delay_ms(1000);
    	HMISends("cls BLUE");
		HMISendb(0xff);
		delay_ms(1000);
		HMISends("cls BLACK");
		HMISendb(0xff); 
		delay_ms(1000);
		HMISends("page 4");
		HMISendb(0xff);
		HMISends("t0.txt="春風不度玉門關(guān)"");
		HMISendb(0xff);	
	}
	while(1);
}

字符串發(fā)送函數(shù)

void HMISends(char *buf1)		  //字符串發(fā)送函數(shù)
{
	u8 i=0;
	while(1)
	{
	 if(buf1[i]!=0)
	 	{
			USART_SendData(USART1,buf1[i]);  //發(fā)送一個字節(jié)
			while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};//等待發(fā)送結(jié)束
		 	i++;
		}
	 else 
	 return ;

		}
	}```
字節(jié)發(fā)送函數(shù)

```c
void HMISendb(u8 k)		         //字節(jié)發(fā)送函數(shù)
{		 
	u8 i;
	 for(i=0;i< 3;i++)
	 {
	 if(k!=0)
	 	{
			USART_SendData(USART1,k);  //發(fā)送一個字節(jié)
			while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};//等待發(fā)送結(jié)束
		}
	 else 
	 return ;

	 } 
}

實驗現(xiàn)象

現(xiàn)象是紅綠藍黑各顯示一秒,最后去除原來工程里面春風不度玉門關(guān)的背景色
請?zhí)砑訄D片描述

總結(jié)

串口屏的驅(qū)動只需要配置好單片機的串口就行,其他的就是發(fā)送函數(shù)的代碼,還是老樣子需要整理好的代碼可以在評論區(qū)留言或私信郵箱!

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2313

    文章

    11195

    瀏覽量

    374734
  • 串口屏
    +關(guān)注

    關(guān)注

    8

    文章

    627

    瀏覽量

    39705
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于STM32+機智云的花園4G遠程控制器開發(fā)全教程

    220V信號的開關(guān)控制,從而實現(xiàn)對交流接觸器的通斷控制。硬件組裝實物參考圖:硬件說明:1、單片機采用STM32F103C8T6核心板一塊2、帶機智云gagent固
    的頭像 發(fā)表于 04-23 18:41 ?96次閱讀
    基于<b class='flag-5'>STM32</b>+機智云的花園4G遠程<b class='flag-5'>控制</b>器開發(fā)全教程

    樂升新推出低成本串口控制芯片 - LT163

    LT163 是一顆低成本高效能的Uart串口控制芯片,其內(nèi)部采用32bit RISC V 核心架構(gòu),主要的功能就是提供Uart 串口通訊,讓主控端MCU透過簡單的通訊
    的頭像 發(fā)表于 03-20 16:30 ?175次閱讀
    樂升新推出低成本<b class='flag-5'>串口</b><b class='flag-5'>屏</b><b class='flag-5'>控制</b>芯片 - LT163

    51單片機驅(qū)動HMI串口串口的下載方式

    串口 串口是一個集成了單片機的屏幕模塊,采用的是TTL串口協(xié)議,可以直接通過對應指令
    的頭像 發(fā)表于 03-17 11:44 ?349次閱讀
    51單片機<b class='flag-5'>驅(qū)動</b><b class='flag-5'>HMI</b><b class='flag-5'>串口</b><b class='flag-5'>屏</b>,<b class='flag-5'>串口</b><b class='flag-5'>屏</b>的下載方式

    樂升串口芯片應用案例#芯片 #產(chǎn)品方案 #國產(chǎn)芯片

    串口
    qunqun012
    發(fā)布于 :2026年02月06日 18:21:45

    樂升LT7589串口芯片驅(qū)動10.1寸 1280*800顯示和10.1寸 1024*600顯示

    串口
    qunqun012
    發(fā)布于 :2026年02月04日 17:58:39

    就各位大神點撥一下串口通信

    我現(xiàn)在用的STM32F103C8T6通過串口度讀取西曼傳感的SDAM模塊。附件有他的產(chǎn)品手冊,我通過串口讀數(shù)據(jù)需要怎么寫狀態(tài)機?還有就是只能通過中斷來獲取數(shù)據(jù)么?我用的標準庫*附件:SDAM產(chǎn)品手冊.pdf
    發(fā)表于 01-30 15:17

    串口調(diào)試步驟(適合免驅(qū)動的232串口設備)

    密碼切換到root超級管理下 apt update 更新插件 apt-get install cutecom 安裝系統(tǒng)自帶的串口調(diào)試工具 cutecom 輸入串口測試的指令會彈出一個圖形界面如下圖 32
    的頭像 發(fā)表于 12-17 17:23 ?1652次閱讀
    <b class='flag-5'>串口</b>調(diào)試步驟(適合免<b class='flag-5'>驅(qū)動</b>的232<b class='flag-5'>串口</b>設備)

    UWB650串口測距通信定位模塊規(guī)格書

    UWB650串口測距通信定位模塊規(guī)格書
    發(fā)表于 11-03 17:40 ?1次下載

    f103c8t6使用adc采樣時程序無法正常工作怎么解決?

    我在學習使用stm32f103c8t6的adc的使用時遇到了這個問題。 是按照教程一步一步操作的:這是教程地址:https://blog.csdn.net/WTF___000/article
    發(fā)表于 10-13 07:25

    關(guān)于stm32f4zgt6和mspm0g3507串口通信問題

    本人在使用stm32f4zgt6和mspm0g3507串口通信時出現(xiàn)問題,情況如下: m0芯片使用軟件超時解析進行數(shù)據(jù)接收,使用標準庫的transmit函數(shù)進行數(shù)據(jù)發(fā)送。 stm32使
    發(fā)表于 09-01 11:11

    STM32串口發(fā)送數(shù)據(jù),USART_FLAG_TC無法置位怎么解決?

    STM32串口發(fā)送數(shù)據(jù),在經(jīng)過一段時間的數(shù)據(jù)發(fā)送,大概200ms發(fā)送一下,一次發(fā)送大概二三十個字
    發(fā)表于 07-29 11:44

    STM32F103c8上做DLQR最優(yōu)控制算法的C編程資料

    這是我近期做的一個項目--基于STM32F103c8的DLQR控制算法的C編程,涉及DLQR最優(yōu)控制算法、嵌入式STM32F103編程、CM
    發(fā)表于 07-23 15:30 ?0次下載

    CH32F103C8T6核心板三種程序下載方式簡介

    CH32F103C8T6核心板,通過USB轉(zhuǎn)串口方式、USB直連方式、SWD方式下載應用程序
    的頭像 發(fā)表于 06-09 09:38 ?1293次閱讀
    CH32<b class='flag-5'>F103C8T6</b>核心板三種程序下載方式簡介

    STM32F103C6T6 DCAC逆變器原理圖

    STM32F103C6T6 DCAC逆變器原理圖
    發(fā)表于 05-19 17:48 ?2次下載
    景宁| 县级市| 崇仁县| 恩平市| 柏乡县| 穆棱市| 贵溪市| 施秉县| 伽师县| 四子王旗| 大邑县| 乐业县| 烟台市| 乌审旗| 尼木县| 桐庐县| 类乌齐县| 临桂县| 和龙市| 北宁市| 平山县| 东阿县| 集贤县| 楚雄市| 麻栗坡县| 西城区| 岑溪市| 靖边县| 罗源县| 霍邱县| 南宁市| 天津市| 通江县| 莎车县| 孟连| 渝中区| 从江县| 土默特右旗| 新宾| 广河县| 阳西县|