2024-07-01 ARM作業

串口通訊實驗

結果:沒完成

main.c
#include "uart4.h"
char Str;
int main()
{//串口通信初始化hal_uart_init();while(1){// hal_delayms(1000);// Str = hal_get_char();// if(Str){// 	hal_put_char(Str+1);// }}return 0;
}
uart4.c
#include "uart4.h"
void hal_delayms(int ms)
{int i,j;for(i=0;i<ms;i++){for(j=0;j<2000;j++);}
}
void hal_uart_init()
{/*****RCC初始化*********///AHB4總線使能GPIOB[1]、GPIOG寄存器[6]RCC->MP_AHB4ENSETR |= (1<<1);RCC->MP_AHB4ENSETR |= (1<<6);//APB1總線使能USART4寄存器[16]RCC->MP_APB1ENSETR |= (1<<16);/*****UART初始化********///PRESC 不分頻 [3:0]=0000USART4->PRESC &= 0<<3;//BRR 規定波特率 16倍采樣率 64M 115200USART4->BRR=0X22B;//64000000/115200//CR1//設置M[1:0]='00'位,分別為[28][12]位 規定數據位長度8位USART4->CR1 &= ~(1<<28);USART4->CR1 &= ~(1<<12);//采樣率設置 16位 [15]=0 (UE==0時設置)USART4->CR1 &= ~(1<<15);//無校驗位 [10]=0 (UE==0時設置)USART4->CR1 &= ~(1<<10);//設置TE位,在發送的一開始發送空閑幀 [3]=1//設置RE,檢測開始位 [2] = 1//設置UE位,使能USART 1 [0]=1USART4->CR1 |= 0x0D;//1101//CR2//規定停止位1位 [13:12]=00USART4->CR2 &= ~(0x3<<12);/*****GPIO初始化********///設置PB[2] RX PG[11]TX 為復用模式 10GPIOB->MODER &= ~(0x3<<4);GPIOB->MODER |= 1<<5;GPIOG->MODER &= ~(0x03<<22);GPIOG->MODER |= 1<<23;//配置寄存器為USART功能 AF8GPIOB->AFRL &= ~(0xf<<8);GPIOB->AFRL |= (0x8<<8);GPIOG->AFRH &= ~(0xf<<12);GPIOG->AFRH |= (0x3<<13);
}
void hal_put_char(char str){//判斷ISR[7]的值if((USART4->ISR & 0x00000080) ==0x00000080){//表示數據寄存器為空USART4->TDR=str;}//判斷ISR[6]的值if((USART4->ISR & 0x00000040) ==0x00000040){//一次數據發送完成}
}
char hal_get_char(){//判斷ISR[5]的值if((USART4->ISR & 0x00000020) == 0x00000020){//表明收到數據return USART4->RDR;}return 0;
}
uart4.h
#ifndef __LED_H__
#define __LED_H__
#include "stm32mp1xx_uart.h"
#include "stm32mp1xx_rcc.h"
#include "stm32mp1xx_gpio.h"
void hal_uart_init();//uart初始化
void hal_put_char(char str);//發送一個字符
void hal_put_string(char *string);//發送一個字符串
char hal_get_char();//接受一個字符
char hal_get_string();//接受一個字符串
void hal_delayms(int ms);
#endif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37817.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37817.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37817.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 線程的生命周期管理

引言 線程是 Java 編程中重要的概念之一。通過多線程&#xff0c;程序可以同時執行多個任務&#xff0c;提高效率和響應能力。理解和管理線程的生命周期是編寫高效并發程序的關鍵。本文將詳細介紹 Java 線程的生命周期管理&#xff0c;并解釋幾種關鍵方法&#xff1a;start()、…

第7篇 智能合約是什么?——從產品經理視角看智能合約

引言 親愛的讀者們,歡迎大家來到我們的《區塊鏈常識:從小白到頂級行業專家》專欄的第7篇!今天,我們要揭開智能合約的神秘面紗。別擔心,這不是法律術語的堆砌,也不是代碼的迷宮,而是一個讓你在區塊鏈上實現奇妙想法的魔法工具。準備好了嗎?讓我們開始吧! 智能合約的定…

RedHat9 | podman容器-續集

一、管理容器存儲和網絡資源 使用容器來運行簡單的進程&#xff0c;然后退出。可以配置容連續運行特定服務&#xff0c;如數據庫服務。如果持續運行服務&#xff0c;需要向容器添加更多的資源&#xff0c;如持久存儲或對其他網絡的訪問權限。 針對企業容器平臺上的大型部署&a…

為Ubuntu-24.04-live-server-amd64磁盤擴容

系列文章目錄 Ubuntu-24.04-live-server-amd64安裝界面中文版 文章目錄 系列文章目錄前言一、檢查系統本身情況1.用 lsblk 命令查看自己系統磁盤是什么狀態2.用 df -h 命令查看文件系統的磁盤空間使用情況3.解決 Ubuntu-24.04 磁盤空間只能用一半的問題3-1擴展邏輯卷&#xff…

這才是CSDN最系統的網絡安全學習路線(建議收藏)

01 什么是網絡安全 網絡安全可以基于攻擊和防御視角來分類&#xff0c;我們經常聽到的 “紅隊”、“滲透測試” 等就是研究攻擊技術&#xff0c;而“藍隊”、“安全運營”、“安全運維”則研究防御技術。 無論網絡、Web、移動、桌面、云等哪個領域&#xff0c;都有攻與防兩面…

基于X86+FPGA+AI的智能倉儲AGV機器人解決方案

應用場景 智能倉儲是物流過程的一個環節&#xff0c;智能倉儲的應用&#xff0c;保證了貨物倉庫管理各個環節數據輸入的速度和準確性&#xff0c;確保企業及時準確地掌握庫存的真實數據&#xff0c;合理保持和控制企業庫存&#xff0c;其中搬運環節目前已大量采用AGV的方式進行…

python-邏輯語句

if else語句 不同于C&#xff1a;else if range語句&#xff1a; continue continue的作用是&#xff1a; 中斷所在循環的當次執行&#xff0c;直接進入下一次 continue在嵌套循環中的應用 break 直接結束所在的循環 break在嵌套循環中的應用 continue和break&#xff0c;在…

星火認知大模型Spark3.5 api調用 #AI夏令營 #Datawhale #夏令營

環境安裝 pip install --upgrade -q spark_ai_python 官網注冊 鏈接&#xff1a;https://console.xfyun.cn/app/myapp 官方會在報名成功后&#xff0c;立即發放星火大模型 Spark Max的 API 額度助力我們完成賽事&#xff0c; 200w Tokens 任你花&#xff01; 暑期有四場夏令營…

HDC Cloud 2024 | CodeArts加速軟件智能化開發,攜手HarmonyOS重塑企業應用創新體驗

2024年6月21~23日&#xff0c;華為開發者大會HDC 2024在東莞溪流背坡村隆重舉行。期間華為云主辦了以“CodeArts加速軟件智能化開發&#xff0c;攜手HarmonyOS重塑企業應用創新體驗”為主題的分論壇。論壇匯聚了各行各業的專家學者、技術領袖和開發者&#xff0c;共同探討Harmo…

養殖自動化管理系統:開啟智慧養殖新篇章

在現代農業的快速演進中&#xff0c;養殖業正經歷一場前所未有的技術革命。養殖自動化管理系統&#xff0c;作為這場變革的前沿科技&#xff0c;正逐步成為推動行業高效、環保、可持續發展的關鍵力量。本文將深入探討自動化養殖系統如何通過精準管理、智能監控、數據驅動決策&a…

C++ 把類封裝成靜態鏈接庫

目錄 一、動態鏈接庫和靜態鏈接庫的區別 二、對比 1、靜態鏈接庫 (Static Library) 2、動態鏈接庫 (Dynamic Library) 三、制作步驟 1. 創建類頭文件 2. 實現類 3. 創建靜態鏈接庫工程 4. 構建靜態鏈接庫 5. 使用靜態鏈接庫 6、添加靜態庫和頭文件路徑 一、動態鏈接庫…

SpringCloud_Ribbon負載均衡

概述 SpringCloud底層其實是利用了一個名為Ribbon的組件&#xff0c;來實現負載均衡功能的。 源碼 LoadBalancerInterceptor 其中含有intercept方法&#xff0c;攔截用戶的HttpRequest請求&#xff1a; request.getURI() 獲取請求uri&#xff0c;即http://userservice/use…

3D Gaussian Splatting代碼中的Gaussian_Module和Cameras兩個類的代碼解讀

Gaussian_model 討論Gaussian_model這個類&#xff0c;是因為里面包含了三維高斯分布的基本信息&#xff0c;里面定義了各種參量的構建方式、用于優化學習的激活函數、學習率設置方法和高斯點優化過程中的增加與刪除方式及對應優化器的處理方法。這個類定義在scene文件夾中的g…

反激開關電源反饋電路相關參數選型

Vb的電壓正常變化范圍是&#xff1a;0-1V&#xff08;最低0V&#xff0c;由于有穩壓管&#xff0c;最高不會超過1V&#xff09; Vb的電壓越高&#xff0c;則輸出占空比越大&#xff0c;Vb電壓越低&#xff0c;則輸出占空比越小 那么Va的正常變化范圍應該是&#xff1a;1.4-4.…

怎么配置electron-builder

electron-builder 是一個用于 Electron 應用程序打包和發布的工具,它支持 macOS、Windows 和 Linux 平臺。以下是一個清晰且詳細的 electron-builder 配置指南,包括分點表示和歸納,并參考了相關文章中的信息。 一、安裝 electron-builder 首先,你需要在你的 Electron 項目…

云卓SKYDROID-H30——科技改變未來

云卓H30采用高通處理器、搭載安卓嵌入式系統&#xff0c;擁有三個工作頻率&#xff0c;讓圖像更清晰、延遲更低、距離遠、抗干擾性強&#xff0c;支持多種接口&#xff0c;更有10.1寸高清工業級陽光可視屏&#xff0c;防塵耐磨&#xff0c;結構強度高&#xff0c;適用于各種嚴苛…

Python和tkinter單詞游戲

Python和tkinter單詞游戲 數據字典文本文件&#xff0c;文件名為Dictionary.txt&#xff0c;保存編碼格式為&#xff1a;utf-8。文本內容&#xff1a;每行一個 單詞 &#xff0c;單詞和解釋用空格分隔&#xff0c;如 a art.一(個)&#xff1b;每一(個) ability n.能力&#…

springboot實驗報告管理系統-計算機畢業設計源碼10596

目錄 1 緒論 1.1 選題背景與意義 1.2國內外研究現狀 1.3論文結構與章節安排 2系統分析 2.1 可行性分析 2.2 系統流程分析 2.2.1系統開發流程 2.2.2 用戶登錄流程 2.2.3 系統操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 刪除信息流程 2.3 系統功能分析 …

HarmonyOS Next開發學習手冊——單選框 (Radio)

Radio是單選框組件&#xff0c;通常用于提供相應的用戶交互選擇項&#xff0c;同一組的Radio中只有一個可以被選中。具體用法請參考 Radio 。 創建單選框 Radio通過調用接口來創建&#xff0c;接口調用形式如下&#xff1a; Radio(options: {value: string, group: string})…

高考不是終點:如何利用教育資源實現人生躍遷?普魯士教育的利弊,你了解嗎?從科舉到高考,中國教育的變遷!鏈接上層,獲取核心資源的途徑

高考已經結束&#xff0c;這兩天分數將會陸續出來&#xff0c;無論結果好壞&#xff0c;我都希望你明白一些道理。這些道理在學校老師不會教你&#xff0c;但是非常重要。 一、中國的科舉制度 科舉制度是為王朝服務的。 科舉制度是中國古代通過考試選拔官員的制度&#xff0c…