国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

串口屏

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

基礎(chǔ)指令集

2-指令集.png

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

硬件和接線

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

接線

串口屏STM32
+5V5V
TXPA10
RXPA9
GNDGND

實(shí)驗(yàn)前準(zhǔn)備

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

STM32程序

串口程序

串口配置

void uart_init(u32 bound){
    //GPIO端口設(shè)置
    GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	 
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE);	//使能USART1,GPIOA時(shí)鐘
 	USART_DeInit(USART1);  //復(fù)位串口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;	//復(fù)用推挽輸出
    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)先級(jí)3
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;		//子優(yōu)先級(jí)3
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//IRQ通道使能
	NVIC_Init(&NVIC_InitStructure);	//根據(jù)指定的參數(shù)初始化VIC寄存器
  
   //USART 初始化設(shè)置

	USART_InitStructure.USART_BaudRate = bound;//一般設(shè)置為9600;
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長(zhǎng)為8位數(shù)據(jù)格式
	USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個(gè)停止位
	USART_InitStructure.USART_Parity = USART_Parity_No;//無奇偶校驗(yàn)位
	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);                    //使能串口 

}

中斷服務(wù)程序

void USART1_IRQHandler(void)                	//串口1中斷服務(wù)程序
	{
	u8 Res;
#ifdef OS_TICKS_PER_SEC	 	//如果時(shí)鐘節(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;//接收錯(cuò)誤,重新開始
				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ù)錯(cuò)誤,重新開始接收	  
					}		 
				}  	
			}  
				 
     }

主函數(shù)

主函數(shù)

int main(void)
 {	   	 
	delay_init();	    	 //延時(shí)函數(shù)初始化	  
	NVIC_Configuration(); 	 //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
	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="春風(fēng)不度玉門關(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ā)送一個(gè)字節(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ā)送一個(gè)字節(jié)
			while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET){};//等待發(fā)送結(jié)束
		}
	 else 
	 return ;

	 } 
}

實(shí)驗(yàn)現(xiàn)象

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

總結(jié)

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

審核編輯 黃宇

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

    關(guān)注

    2309

    文章

    11162

    瀏覽量

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

    關(guān)注

    8

    文章

    621

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    就各位大神點(diǎn)撥一下串口通信

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

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

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

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

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

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

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

    CH32F103C8T6核心板三種程序下載方式簡(jiǎn)介

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

    STM32F103C6T6 DCAC逆變器原理圖

    STM32F103C6T6 DCAC逆變器原理圖
    發(fā)表于 05-19 17:48 ?2次下載

    stm32f103c8t6主控芯片無人機(jī)原理圖

    stm32f103c8t6主控芯片無人機(jī)原理圖
    發(fā)表于 04-29 17:02 ?3次下載

    STM32F103C8T6無法選擇外部晶振怎么解決?

    我從網(wǎng)上購入了STM32F103C8T6的核心板,板上有外部晶振。但我使用STM32CubeMX生成項(xiàng)目時(shí),卻無法選擇外部晶振(如下圖)。請(qǐng)問要在哪里設(shè)置才能選擇外部晶振呀?
    發(fā)表于 04-28 07:03

    PL2303串口驅(qū)動(dòng)

    PL2303串口驅(qū)動(dòng)
    發(fā)表于 04-09 16:02 ?4次下載

    PL2303串口驅(qū)動(dòng)win10版本用

    PL2303串口驅(qū)動(dòng)win10版本用
    發(fā)表于 04-09 16:02 ?1次下載

    cp2102串口驅(qū)動(dòng)

    cp2102串口驅(qū)動(dòng)
    發(fā)表于 04-09 16:01 ?10次下載

    STM32串口下載軟件(FLYMCU)

    STM32串口下載軟件(FLYMCU),經(jīng)典版本,親試可用。
    發(fā)表于 04-09 15:59 ?11次下載

    如何選擇國(guó)產(chǎn)串口

    在工業(yè)控制、智能設(shè)備等眾多領(lǐng)域,串口作為重要的人機(jī)交互界面,發(fā)揮著關(guān)鍵作用。隨著國(guó)內(nèi)技術(shù)的飛速發(fā)展,國(guó)產(chǎn)串口以其出色的性能、豐富的功能和
    的頭像 發(fā)表于 03-26 18:02 ?876次閱讀
    如何選擇國(guó)產(chǎn)<b class='flag-5'>串口</b><b class='flag-5'>屏</b>

    STM32F103C8T6開發(fā)板最小系統(tǒng)原理圖

    電子發(fā)燒友網(wǎng)站提供《STM32F103C8T6開發(fā)板最小系統(tǒng)原理圖》資料免費(fèi)下載
    發(fā)表于 03-24 09:09 ?92次下載

    STM32G4串口無法發(fā)送正確的信息是怎么回事?

    STM32G4串口無法發(fā)送正確的信息
    發(fā)表于 03-14 07:14