1. 程式人生 > >串列埠傳送資料

串列埠傳送資料

今晚著急搞F0的處理器,以後會把原因搞明白,現在僅當是做記錄

                                                                                         使用串列埠做資料傳送時,使用printf函式

不管是stm32的HAl還是普通的庫函式,在usart.h中新增include"stdio.h"標頭檔案,在usart.c檔案中新增

#if 1
#pragma import(__use_no_semihosting)             
//標準庫需要的支援函式                 
struct __FILE 

int handle; 
}; 


FILE __stdout;       
//定義_sys_exit()以避免使用半主機模式    
void _sys_exit(int x) 

x = x; 

//重定義fputc函式 
int fputc(int ch, FILE *f)
{
while((USART1->ISR&0X40)==0);//迴圈傳送,直到傳送完畢   
USART1->TDR=(unsigned char)ch;      
return ch;
}
#endif 

ok,以後回來補上原因吧

相關推薦

串列傳送資料查詢方式與中斷方式

微控制器採用中斷或查詢方式使用串列埠,這是根據實際應用的需要確定的,沒有好/壞之分。有時之所以採用查詢方式處理串列埠程式,是因為應用程式不苛刻微控制器的時間資源,採用查詢的方式就能滿足應用的需要,所以沒采用中斷。大量連續的向串列埠傳送資料,就沒有必要使用中斷了,因為微控制器根

STM32的串列傳送資料(字元,字串,數字.......)(重點)

#include "stm32f10x.h" #include <stdio.h>    //下面strlen函式需要此標頭檔案 #include "USART.h" /**********************************************

移遠BC95 NB-IoT模組串列傳送資料到伺服器

    本文適用於對NB-IoT一無所知的小白。目的是通過NB-IoT協議將資料傳送到伺服器端。     現在已有不少NB-IoT模組,本人採用的是移遠的BC95模組。     接線:外接電源供電 串列埠接右下角三個介面,GND

64位電腦通過串列傳送資料到硬體

首先下載:RXTX的包,(僅64位有效)Rxtx開源包下載地址:1、把rxtxParallel.dll、rxtxSerial.dll拷貝到:C:\WINDOWS\system32下。 2、如果是在開發的時候(JDK),需要把RXTXcomm.jar、rxtxParallel

串列傳送資料

今晚著急搞F0的處理器,以後會把原因搞明白,現在僅當是做記錄                                                                                          使用串列埠做資料傳送時,使用pri

MSP430按鍵控制串列傳送資料

#include <msp430.h> //MSP430G2553  - 使用USCI_A0,Up Mode, DCO SMCLK // //  介紹: 該程式利用USCI_A0來與計算機通訊 通過接在P1.3口的按鍵來實現按一次傳送一個數據 //  波特率96

STM32串列傳送資料和接收資料方式總結

       之前寫了篇關於ESP8266使用AT指令進行互相通訊的實驗,在寫STM32串列埠接發資料的程式中,覺得有必要將之前學的有關於串列埠方面的使用經歷加以總結。 串列埠傳送資料:        1. 串列埠傳送資料最直接的方式就是標準呼叫庫函式 。 void

樹莓派3B在Qt下使用串列傳送資料

一、解除串口占用 使用putty的時候神奇的發現樹莓派竟然是支援serial進行操作。試了試,和在ssh下使用沒有多少區別,速度也很快。 樹莓派的串列埠主要也就是被這個佔用了,配置釋放之後才能使用它來進行串列埠通訊。 在命令列裡輸入如下指令:

關於arduino通過串列傳送到processing的資料混亂(錯誤\顯示不正確)的問題解答

最近的教學中,已經開始使用processing和arduino進行串列埠通訊的互動,使用中發現有的同學遇到了arduino傳送給processing的資料存在顯示不正確,甚至混亂的現象。這裡給予統一解釋。 arduino程式碼完成的工作是將模擬訊號口讀入模擬資料,然後經過map對映為0到

使用python在openwrt下操作串列傳送十六進位制資料

#!/usr/bin/python import serial from time import sleep ser = serial.Serial('/dev/ttyS0', 9600, timeout=0.5) print ser.port print ser.baudrate if

關於微控制器串列傳送時初始傳送資料第一個總是00的問題解決

在除錯STM8的串列埠時候,串列埠IO初始化,串列埠配置,傳送資料除錯~~ 連線好串列埠線後,發現初始化後傳送的第一個資料總是00,後面的資料才是正常的資料。 折騰了大半天,終於發現了原因了,那就是初始化串列埠後不能馬上傳送資料,要經過一定時間延遲。 問題程式碼如下: &l

FPGA 學習筆記(十二) 如何用串列傳送32位資料

在筆者之前所用的串列埠中,串列埠一次只能傳送資料為8位,這跟串列埠通訊的協議方式有關係。而最近筆者的專案中需要用到一次傳送32位的資料。筆者最開始想到的是32位資料傳送4次。 為了不改動原來的串列埠通訊協議驅動,筆者設計瞭如下發送方式: 設計四個狀態stat

linux多執行緒下開啟串列傳送和接收資料

1 啟動執行緒1讀串列埠 2 等待3秒後 3 啟動執行緒2寫串列埠,傳送字串後關閉 4 等待10秒 5 關閉兩個執行緒 #include <pthread.h> #include <stdio.h> #include <sys/time.h> #include &

verilog語言RS232串列傳送模組設計——採集ps2鍵盤資料串列除錯工具顯示

module ps2_driever( clk,rst_n,ps2k_clk,ps2k_data,sm_bit,sm_seg,ps2_state,ps2_byte); input clk; //50M時鐘訊號 input rst_n; //復位訊號 input ps2k_clk; //PS2介面時鐘

串列通訊資料傳送--字元傳送和16進位制傳送--傳送位元組的間隔時間

在計算機中,所有的資料在儲存和運算時都要使用二進位制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)、以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中儲存時也要使用二進位制數來表示,而具體用哪些二進位制數字

Stm32串列傳送字串資料

ps:把字串分成位元組迴圈傳送 /* *說明: *PA0:KEY1;PA1:KEY2; *PA2:LED1;PA3:LED2; *PA9:USART1_TX;PA10:USART1_RX */ #include "stm32f10x.h" #include "stm32

VB 串列傳送,將文字中的字串轉化成16進位制資料傳送

VB寫一個串列埠傳送程式碼,遇到一個問題,如何將文字中的字串轉化成16進位制資料傳送。 Dim bindate(200) As String Dim senddata As String ‘定義輸入字串變

Qt中串列傳送HEX資料

             在lineEdit輸入資料的型別是QString型別,以往我在傳送的時候是ASCII方式傳送,這會兒突然遇到一個是十六進位制傳送/接受的下位機,就需要將QString 轉化為十六進位制,本來直接用toHex進行轉化,但考慮到在輸入的的時候有間隔符之

RTOS_TINY中實現串列傳送字串控制LED

題目內容 在RTOS_TINY作業系統下實現以下目標: 有四個LED,使用AT89S52的4個引腳驅動它們分別以5Hz,8Hz,20Hz,32Hz的頻率閃爍。設使用12MHz的晶振。用串列埠助手,通過傳送 “TURN on 1”,使得LED1持續閃爍,並回顯“LED1 on”;傳送

windows下C語言版串列傳送程式(基於VS2017)

#include "pch.h" #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> #include <string.h> #include <conio.h&