注:所有的函式宣告需要在標頭檔案中
void usart_config(void);
unsigned char usart_sendchar(usart_typedef* usartx,unsigned char ucchar);
void usart_sendbyte(usart_typedef* usartx,uint8_t data);
usart的韌體庫程式設計主要有以下幾個方面:
1、初始化串列埠需要用到的gpio
gpio和usart1的時鐘在apb2上,其他的串列埠在apb2上,gpio初始化輸入的時候需要不配置速度,輸出的時候需要速度。
gipo的輸入方式有
模擬輸入: gpio_mode_ain
浮空輸入: gpio_mode_in_floating
下拉輸入: gpio_mode_ipd
上拉輸入: gpio_mode_ipu
輸出方式有:
開漏輸出:gpio_mode_out_od
推挽輸出:gpio_mode_out_pp
復用開漏輸出: gpio_mode_af_od``
復用推挽輸出: gpio_mode_af_pp
gpio的速度有:
10mhz: gpio_speed_10mhz
2mhz : gpio_speed_2mhz,
50mhz : gpio_speed_50mhz
gpio的初始化**:
//配置 tx的gpio為推挽復用模式,輸出需要配置速度,輸入不需要配置速度
gpio_initstructure.gpio_pin =gpio_pin_2;
gpio_initstructure.gpio_mode =gpio_mode_af_pp;
gpio_initstructure.gpio_speed =gpio_speed_50mhz;
gpio_init(gpioa,&gpio_initstructure);
//配置rx的gpio為浮空輸入模式
gpio_initstructure.gpio_pin =gpio_pin_3;
gpio_initstructure.gpio_mode =gpio_mode_in_floating;
gpio_init(gpioa,&gpio_initstructure);
2、初始化串列埠
串列埠有波特率、資料位、停止位、校驗位、選擇輸入或者輸出方式,波特率要與串列埠除錯助手的波特率一致,配置一致
//初始化usart2(波特率,預設為8個資料位,1個停止位,無校驗位,可以接收和傳送)
usart_initstructure.usart_baudrate =9600;
usart_initstructure.usart_wordlength =usart_wordlength_8b;
usart_initstructure.usart_stopbits =usart_stopbits_1;
usart_initstructure.usart_parity =usart_parity_no;
usart_initstructure.usart_mode =usart_mode_rx | usart_mode_tx;
usart_initstructure.usart_hardwareflowcontrol =usart_hardwareflowcontrol_none;//控制流
usart_init(usart2,&usart_initstructure);
3、串列埠使能
//允許usart2
usart_cmd(usart2, enable);
//允許usart2接收中斷
usart_itconfig(usart2, usart_it_txe, enable);
4、編寫傳送和接收函式
傳送乙個字元或者數字
//傳送字元函式
unsigned char usart_sendchar(usart_typedef* usartx,unsigned char ucchar)
//傳送數字
void usart_sendbyte(usart_typedef* usartx,uint8_t data)
主函式中呼叫函式即可
編譯程式之後,燒錄成功,開啟串列埠除錯助手,配置,就能在串列埠除錯助手的接收區接收到傳送的資料
韌體庫程式設計(3) 位帶操作
位線操作是把暫存器中的某個位單獨拿出來,放在位帶區,並且在位帶別名區重新膨脹為1個字,但只能對這個位進行操作。通過訪問位帶別名區來訪問某個單獨的位。位帶區的每乙個位都是通過對位帶別名區的位址來訪問。位帶區乙個位,對應位帶別名區乙個字 即4個位元組 在 cm3中,有兩個區中實現了位帶。其中乙個是 sr...
初識韌體庫
1.韌體的含義 韌體 firmware 就是寫入erom 可擦寫唯讀儲存器 或eeprom 電可擦可程式設計唯讀儲存器 中的程式,它是軟體。韌體是指裝置內部儲存的裝置 驅動程式 通過韌體,作業系統才能按照標準的裝置驅動實現特定機器的執行動作,比如光碟機 燒錄機等都有內部韌體。韌體是擔任著乙個系統 最...
修改USB韌體庫的Customer HID例程
我用的是神州三號開發板子,板子的usb模組原理圖為 配置埠g的11號引腳為usb的使能引腳,按理來說應該是開漏輸出的 看了很多的修改 都是這個模式 不過就是不能使能usb,只能配置成推挽的才行,不知道為什麼,不知道有沒有人知道這個,求解答?gpio initstructure.gpio pin us...